程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 在Java 7中如何對文件進行操作

在Java 7中如何對文件進行操作

編輯:關於JAVA

創建文件

刪除文件

復制文件

文件移動/改名

這篇文件是以你對Java7裡提供的新的Path類很熟悉為前提,如果你不熟悉這個類,這裡就簡單說一句, Path 是文件系統裡對位置的一個邏輯概念,例如 c: 和 ../foobar.txt 都是Path。

創建和刪除文件

下面的代碼片段向你展示的是用 Files.createFile(Path target) 方法創建文件的基本用法。

  1. Path target = Paths.get("D:\Backup\MyStuff.txt");
  2. Path file = Files.createFile(target);

很多時候,出於安全的原因,你可能希望在創建的文件上設置一下屬性,例如:是否可讀/可寫/寫執行。這些屬性依賴於文件系統的種類,你需要使用跟文件系統相應的權限輔助類來完成這種操作。例如,PosixFilePermission和PosixFilePermissions 為 POSIX 文件系統設計的。下面的是在POSIX文件系統上的文件設置讀寫權限的用法。

  1. Path target = Paths.get("D:\Backup\MyStuff.txt");
  2. Set<PosixFilePermission> perms= PosixFilePermissions.fromString("rw-rw-rw-");
  3. FileAttribute<Set<PosixFilePermission>> attr= PosixFilePermissions.asFileAttribute(perms);
  4. Files.createFile(target, attr);

這個 Java.nio.file.attribute 包裡提供了很多關於 FilePermission 的類。

警告 當創建一個帶有權限屬性的文件時,請注意包含這個文件的文件夾是否有權限的強制約束。例如,你會發現,由於這些限制,盡管你給創建的文件指定了 rw-rw-rw 權限,實際創建的結果卻是 rw-r–r– 。

刪除文件更簡單,使用 Files.delete(Path) 這個方法。

  1. Path target = Paths.get("D:\Backup\MyStuff.txt");
  2. Files.delete(target);

拷貝和移動文件

下面的代碼向你展示的是使用 Files.copy(Path source, Path target) 方法做文件拷貝的基本用法。

  1. Path source = Paths.get("C:\My Documents\Stuff.txt");
  2. Path target = Paths.get("D:\Backup\MyStuff.txt");
  3. Files.copy(source, target);

經常的,在拷貝文件的過程中你可能希望指定一些操作設置。在Java7裡,你可以通過使用 StandardCopyOption enum 來設置這些屬性。下面看一個例子。

import static Java.nio.file.StandardCopyOption.*;Path source = Paths.get("C:\My Documents\Stuff.txt");Path target = Paths.get("D:\Backup\MyStuff.txt");Files.copy(source, target, REPLACE_EXISTING);

拷貝操作時可以使用的屬性還包括COPY_ATTRIBUTES (保留文件屬性) 和 ATOMIC_MOVE (確保移動事務操作的成功,否則進行回滾)。

移動文件的操作跟拷貝很相似,使用 Files.move(Path source, Path target) 方法。

同樣,你也可以指定移動操作的屬性,使用 Files.move(Path source, Path target, CopyOptions...) 方法裡的參數來設置。

  1. import static Java.nio.file.StandardCopyOption.*;
  2. Path source = Paths.get("C:\My Documents\Stuff.txt");
  3. Path target = Paths.get("D:\Backup\MyStuff.txt");
  4. Files.move(source, target, REPLACE_EXISTING, COPY_ATTRIBUTES);

可以看出,新的用於文件操作的 NIO.2 API 非常便於使用

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved