系統學習 Java IO (三)----文件類 File

目錄:系統學習 Java IO---- 目錄,概覽html

Java IO API 中的 File 類能夠訪問基礎文件系統。 使用 File 類,能夠:java

  • 檢查文件或目錄是否存在。
  • 若是目錄不存在,建立一個目錄。
  • 讀取文件的長度。
  • 重命名或移動文件。
  • 刪除文件。
  • 檢查路徑是文件仍是目錄。
  • 讀取目錄中的文件列表。

注意:「File」僅容許訪問文件和文件系統元數據。 若是須要讀取或寫入文件內容,則應使用 FileInputStream,FileOutputStream 或 RandomAccessFile 執行此操做。緩存

File 類一共有 4 個字段,能夠提供平臺無關的一些字符:dom

字段 描述
static String pathSeparator 與系統有關的路徑分隔符,爲了方便,它被表示爲一個字符串。
static char pathSeparatorChar 同上值的字符表示,UNIX系統爲 '/' ,Windows 系統爲 '\\'。
static String separator 與系統有關的默認名稱分隔符,Unix系統是 ':' Windows系統是 ';'
public static final char pathSeparatorChar 同上值的字符表示

構造器和一些方法示例以下:學習

public class FileExample {
    public static void main(String[] args) throws IOException, URISyntaxException {
        // File 一共有 4 種構造器,以下:
        File parentDir = new File("D://test"); // 經過目錄路徑字符串建立
        File file1 = new File("D://test//file1.txt"); // 經過文件路徑字符串建立
        File file2 = new File(parentDir, "childDir"); // 經過指定父目錄方式建立
        File uri = new File(new URI("file:/D:/test/uri")); // 經過 URI 對象建立

        /*
        File 對象既可用來建立目錄,也能夠建立文件,不會受到路徑名影響,
        好比能夠建立名爲 file1.txt 的目錄,建立名爲 childDir 的文件
         */
        parentDir.mkdirs(); // 建立 test 目錄
        file1.mkdirs(); // 建立 file1.txt 目錄
        file2.createNewFile(); // 建立 childDir 文件
        file2.mkdirs(); // file2 已建立了 childDir 文件,同一目錄下再建立 childDir 目錄會失敗

        uri.mkdirs();
        System.out.println(uri.exists());

        System.out.println(file1.getName()); // file1.txt
        System.out.println(file1.exists()); // true
        System.out.println(file1.isFile()); // false
        System.out.println(file1.isAbsolute()); // true
        System.out.println(file1.getAbsolutePath()); // 返回絕對路徑,D:\test\file1.txt
        System.out.println(file1.getAbsoluteFile()); // 等同於 new File(this.getAbsolutePath())
        System.out.println(file1.toURI()); // file:/D:/test/file1.txt/

        // 列出系統的根目錄,C:\ D:\
        File[] files = File.listRoots();
        for (int i = 0; i < files.length; i++) {
            System.out.println(files[i]);
        }

        /* 返回 parentDir 目錄下全部的文件
            D:\test\childDir
            D:\test\file1.txt
            D:\test\ uri
         */
        File[] fs = parentDir.listFiles();
        for (int i = 0; i < fs.length; i++) {
            System.out.println(fs[i]);
        }

        // 當即刪除此抽象路徑名錶示的文件或目錄。若是是目錄,則該目錄必須爲空才能刪除。
        file1.delete();
        // 將刪除的命令緩存,JVM 終止時才真正刪除
        parentDir.deleteOnExit();
    }
}

注意:boolean mkdirs() 方法建立此抽象路徑名指定的目錄,包括全部必需但不存在的父目錄。注意,此操做失敗時也可能已經成功地建立了一部分必需的父目錄。若是目錄已存在,返回 false 。this

相關文章
相關標籤/搜索