熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

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

2013-11-23 19:23:05  來源: Java核心技術 
    下面的代碼片段是由經過驗證的程序修改而來觀察這些代碼片段你會發現跟以前的版本相比在Java文件相關的操作變得簡單的多了通過使用新的Files類裡提供的各種方法你可以只用一行代碼就能完成下列的文件操作
   
    ?創建文件
   
    ?刪除文件
   
    ?復制文件
   
    ?文件移動/改名
   
    這篇文件是以你對Java裡提供的新的Path類很熟悉為前提如果你不熟悉這個類這裡就簡單說一句Path是文件系統裡對位置的一個邏輯概念例如c:\ 和/foobartxt都是Path
   
    創建和刪除文件
   
    下面的代碼片段向你展示的是用 FilescreateFile (Path target) 方法創建文件的基本用法
   
    Path target = Pathsget (D:\\Backup\\MyStufftxtPath file = FilescreateFile (target)
   
    很多時候出於安全的原因你可能希望在創建的文件上設置一下屬性例如是否可讀/可寫/寫執行這些屬性依賴於文件系統的種類你需要使用跟文件系統相應的權限輔助類來完成這種操作例如PosixFilePermission和PosixFilePermissions為POSIX文件系統設計的下面的是在POSIX文件系統上的文件設置讀寫權限的用法
   
    Path target = Pathsget (D:\\Backup\\MyStufftxt
   
    Set<PosixFilePermission> perms   =
   
    PosixFilePermissionsfromString (rwrwrw
   
    FileAttribute<Set<PosixFilePermission》 attr   =  
   
    PosixFilePermissionsasFileAttribute (perms)
   
    FilescreateFile (target attr)
   
    這個javaniofileattribute包裡提供了很多關於FilePermission的類
   
    警告當創建一個帶有權限屬性的文件時請注意包含這個文件的文件夾是否有權限的強制約束例如你會發現由於這些限制盡管你給創建的文件指定了rwrwrw權限實際創建的結果卻是rwr–r–
   
    刪除文件更簡單使用Filesdelete (Path)這個方法
   
    Path target = Pathsget (D:\\Backup\\MyStufftxt
   
    Filesdelete (target)
   
    拷貝和移動文件
   
    下面的代碼向你展示的是使用py (Path source Path target)方法做文件拷貝的基本用法
   
    Path source = Pathsget (C:\\My Documents\\Stufftxt
   
    Path target = Pathsget (D:\\Backup\\MyStufftxt
   
    py (source target)
   
    經常的在拷貝文件的過程中你可能希望指定一些操作設置在Java你可以通過使用StandardCopyOption enum來設置這些屬性下面看一個例子
   
    import static javaniofileStandardCopyOption*;
   
    Path source = Pathsget (C:\\My Documents\\Stufftxt
   
    Path target = Pathsget (D:\\Backup\\MyStufftxt
   
    py (source target REPLACE_EXISTING)
   
    拷貝操作時可以使用的屬性還包括COPY_ATTRIBUTES (保留文件屬性) 和ATOMIC_MOVE (確保移動事務操作的成功否則進行回滾)
   
    移動文件的操作跟拷貝很相似使用Filesmove (Path source Path target)方法
   
    同樣你也可以指定移動操作的屬性使用Filesmove (Path source Path target CopyOptions…) 方法裡的參數來設置
   
    import static javaniofileStandardCopyOption*;
   
    Path source = Pathsget (C:\\My Documents\\Stufftxt
   
    Path target = Pathsget (D:\\Backup\\MyStufftxt
   
    Filesmove (source target REPLACE_EXISTING
   
    COPY_ATTRIBUTES)
   
    可以看出新的用於文件操作的NIO API 非常便於使用
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26762.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.