在Java 7中处理文件
- 創建
- 刪除
- 復制
- 移動/重命名
提示關于Path的快速注釋。 這篇文章假定您已經對新的Java 7 Path類有所了解,如果沒有的話,這里是快速入門! 路徑是文件系統上某個位置的邏輯抽象,例如, “ c:\” 是 路徑,就像“ ../foobar.txt”一樣
讓我們從文件的創建和刪除開始。
創建和刪除文件
通過使用Files類中的簡單輔助方法,您可以創建文件并輕松刪除它們。
提示如果要運行本節中的代碼段,請用與文件系統匹配的實際路徑替換實際路徑!
以下代碼段顯示了使用Files.createFile(Path target)方法的基本文件創建。
Path target = Paths.get("D:\\Backup\\MyStuff.txt"); Path file = Files.createFile(target);通常,您出于安全目的以及為了讀取和/或寫入和/或執行而知道是否正在創建文件的情況下,希望在該文件上指定一些文件屬性。 由于這取決于文件系統,因此您需要利用特定于文件系統的文件權限類及其幫助程序。
例如,用于POSIX兼容文件系統的PosixFilePermission和PosixFilePermissions 。 設置POSIX文件系統中的owner-group-all的讀寫示例如下。
Path target = Paths.get("D:\\Backup\\MyStuff.txt"); Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rw-rw-rw-"); FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms); Files.createFile(target, attr);java.nio.file.attribute包包含提供的FilePermission類的列表。 在The Well-Grounded Java Developer的第2章中還進一步詳細介紹了文件屬性支持。
警告創建具有特定權限的文件時,請注意該文件的父目錄正在執行的所有umask限制或限制性權限。 例如,您可能會發現,即使為新文件指定了rw-rw-rw ,由于這些限制,它實際上也被創建為rw-r–r– 。
刪除文件要簡單一些,可以通過簡單的Files.delete(Path)方法執行。
Path target = Paths.get("D:\\Backup\\MyStuff.txt"); Files.delete(target);接下來,快速概述在文件系統中復制和移動文件。
復制和移動文件
通過使用Files類中的簡單幫助程序方法,您可以輕松執行復制和移動操作。 下面的代碼片段使用Files.copy(Path source,Path target)方法展示了一個基本副本。
Path source = Paths.get("C:\\My Documents\\Stuff.txt"); Path target = Paths.get("D:\\Backup\\MyStuff.txt"); Files.copy(source, target);通常,您想在復制操作中指定一些選項。 在Java 7中,可以使用StandardCopyOption枚舉來指定這些選項。 下一個示例使用覆蓋(即替換現有)選項。
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 (確保移動操作的兩面都成功或該操作被回滾)。移動操作與復制操作非常相似,并使用原子文件執行。 move(Path source,Path target)方法。
再次,您通常希望該移動帶有一些復制選項,因此可以使用Files.move(Path source,Path target,CopyOptions ...)方法(請注意varargs的使用)。
在這種情況下,我們希望在移動源文件時保留其屬性,并覆蓋目標文件(如果存在)。
import static java.nio.file.StandardCopyOption.*;Path source = Paths.get("C:\\My Documents\\Stuff.txt"); Path target = Paths.get("D:\\Backup\\MyStuff.txt"); Files.move(source, target, REPLACE_EXISTING, COPY_ATTRIBUTES);如您所見,新的用于文件操作的NIO.2 API易于使用,我們希望您喜歡這個小嘗嘗!
編碼愉快! 不要忘記分享!
參考文獻:
- 在Java 7開發者博客上從我們的JCG合作伙伴處以Java 7 操作文件
- 經驗豐富的Java開發人員
相關文章:
- JDK中的設計模式
- Java內存模型–快速概述和注意事項
- Java Fork / Join進行并行編程
- 依賴注入–手動方式
- 了解和擴展Java ClassLoader
翻譯自: https://www.javacodegeeks.com/2011/09/manipulating-files-in-java-7.html
總結
以上是生活随笔為你收集整理的在Java 7中处理文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马可波罗kpl装备铭文(国服第一马可波罗
- 下一篇: 蒸蛋水和蛋的比例是多少(鸡蛋羹怎么做蒸出