系統學習 Java IO (三)----File
阿新 • • 發佈:2018-11-24
Java IO API 中的 File 類可以訪問基礎檔案系統。 使用File類,可以:
- 檢查檔案或目錄是否存在。
- 如果目錄不存在,建立一個目錄。
- 讀取檔案的長度。
- 重新命名或移動檔案。
- 刪除檔案。
- 檢查路徑是檔案還是目錄。
- 讀取目錄中的檔案列表。
注意:“File”僅允許訪問檔案和檔案系統元資料。 如果需要讀取或寫入檔案內容,則應使用 FileInputStream,FileOutputStream 或 RandomAccessFile 執行此操作。
File 類一共有 4 個欄位,可以提供平臺無關的一些字元:
欄位 | 描述 |
---|---|
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