技術中(zhōng)心

在Java 7裏如何對文件進行操作
發布者:admin    信息來源:本站原創    發布時間:2011-12-30      浏覽次數:7016
分(fēn)享到:

下(xià)面的代碼片段是由經過驗證的程序修改而來。觀察這些代碼片段你會發現,跟以前的版本相比,在Java7裏,文件相關的操作變得簡單的多了。通過使用新的Files類裏提供的各種方法,你可以隻用一(yī)行代碼就能完成下(xià)列的文件操作:

  • 創建文件
  • 删除文件
  • 複制文件
  • 文件移動/改名

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

創建和删除文件

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

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

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

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

這個java.nio.file.attribute包裏提供了很多關于FilePermission的類。

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

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

  1. Path target = Paths.get ("D:BackupMyStuff.txt"); Files.delete (target);  

拷貝和移動文件

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

  1. Path source = Paths.get ("C:My DocumentsStuff.txt");  
  2. Path target = Paths.get ("D:BackupMyStuff.txt"); Files.copy (source, target);  

經常的,在拷貝文件的過程中(zhōng)你可能希望指定一(yī)些操作設置。在Java7裏,你可以通過使用StandardCopyOption enum來設置這些屬性。下(xià)面看一(yī)個例子。

  1. import static java.nio.file.StandardCopyOption.*;  
  2.  
  3. Path source = Paths.get ("C:My DocumentsStuff.txt");  
  4. Path target = Paths.get ("D:BackupMyStuff.txt");  
  5.  
  6. 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.  
  3. Path source = Paths.get ("C:My DocumentsStuff.txt");  
  4. Path target = Paths.get ("D:BackupMyStuff.txt"); Files.move (source, target, REPLACE_EXISTING,   
  5.  
  6. COPY_ATTRIBUTES);  

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

扫一扫分享
4000-880-989
(24小(xiǎo)時熱線)
聯系客服
微信公衆号

官方公衆号

小(xiǎo)程序

©2008-2024 CORPORATION ALL Rights Reserved. 西山區唯美網絡科技工作室版權所有 滇公網安備