Java IO學習一:File類

1,關於File類

File類是IO包中惟一表明磁盤文件自己的對象,
File類定義了一些與平臺無關的方法來操做文件。
經過調用File類提供的各類方法,可以完成建立、刪除文件、重命名文件、判斷文件的讀寫權限權限是否存在、設置和查詢文件的最近修改時間等操做。

2,File類主要操做

public static void main(String[] args) {
        //File類的靜態變量,分別表明當前系統下的:; ; \ \
        System.out.println(File.pathSeparator);
        System.out.println(File.pathSeparatorChar);
        System.out.println(File.separator);
        System.out.println(File.separatorChar);
        
        String pathName = "D:" + File.separator + "mytemp";//在win下等同於:D:/mytemp 或 D:\\mytemp
        /**
         * File共有4中構造方法,沒有無參構造方法
         * 1,傳入路徑(經常使用)
         * 2,傳入URI
         * 3,傳入父File,子路徑
         * 4,傳入父路徑,子路徑
         */
        File file = new File(pathName);//得到D:/mytemp這個對象
        if(file.exists() && file.isDirectory()) {//file是否存在而且是不是目錄
            System.out.println("file是目錄\n");
            File[] files = file.listFiles();//獲取目錄下的子目錄和文件(僅當層目錄下)
            System.out.println("目錄下有:\n");
            for(File f : files) {
                System.out.println(f);
            }
            System.out.println("#############################\n");
            System.out.println(files[0].isFile() ? "files[0]是文件" : "files[0]是目錄");
            System.out.println("files[0]的名字:" + files[0].getName());
            System.out.println("files[0]的路徑:" + files[0].getPath());
            System.out.println("files[0]的絕對路徑:" + files[0].getAbsolutePath());
            System.out.println("files[0]的父目錄路徑" + files[0].getParent());
            System.out.println(files[0].canRead() ? "files[0]可讀" : "files[0]可讀");
            System.out.println(files[0].canWrite() ? "files[0]可寫" : "files[0]可寫");
            System.out.println(files[0].canExecute() ? "files[0]可執行" : "files[0]可執行");
            System.out.println(files[0].isAbsolute() ? "files[0]的路徑是絕對路徑" : "files[0]的路徑不是絕對路徑");
            System.out.println("files[0]的路徑轉換爲URI:" + files[0].toURI());
            long lastModifiedTime = files[0].lastModified();//得到文件上次修改時間,單位s
            Date date = new Date(lastModifiedTime);
            SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String format = dateFormate.format(date);
            System.out.println("files[0]的上次修改時間:" + format);
            //刪除文件的時候,不會進入回收站
            //刪除目錄的時候,若是有子文件或子目錄,不會刪除成功
            if(files[2].exists()) {
                files[2].delete();//刪除files[2],這是一個目錄
            }
            if(files[6].exists()) {
                files[6].deleteOnExit();//當虛擬機終止時刪除files[6],這是一個文件
            }
        }
    }

3,建立File

@Test
    public void test() throws IOException {
        File parent = new File("D:" + File.separator + "mytemp");
        if(parent.exists()) {
            System.out.println("父目錄存在");
            File childFile = new File(parent,"a.txt");
            if(childFile.createNewFile()) {//建立文件,若是建立成功
                System.out.println("文件建立成功!");//若是存在同名文件,不會建立
            };
            File childDirectory = new File(parent,"a");
            if(childDirectory.mkdir()) {//建立目錄,若是建立成功
                System.out.println("目錄建立成功!");//若是存在同名目錄,不會建立
            };
        }
    }

4,刪除File

public static void deleteFile(File file) {
        File[] files = file.listFiles();
        if(files != null) {
            for(File f : files) {
                if(f.isDirectory()) {
                    deleteFile(f);
                }
                f.delete();
            }
        }
        file.delete();
    }
相關文章
相關標籤/搜索