在Java7中如何操作文件
来源:互联网 发布:js json push 编辑:程序博客网 时间:2024/05/29 02:17
导读:本文是从《Manipulating Files in Java 7》这篇文章翻译而来。 文章内容如下:
下面的代码片段是由经过验证的程序修改而来。观察这些代码片段你会发现,跟以前的版本相比,在Java7里,文件相关的操作变得简单的多了。通过使用新的Files类里提供的各种方法,你可以只用一行代码就能完成下列的文件操作:
- 创建文件
- 删除文件
- 复制文件
- 文件移动/改名
这篇文件是以你对Java7里提供的新的Path类很熟悉为前提,如果你不熟悉这个类,这里就简单说一句,Path是文件系统里对位置的一个逻辑概念,例如c:\ 和../foobar.txt都是Path。
创建和删除文件
下面的代码片段向你展示的是用 Files.createFile (Path target) 方法创建文件的基本用法。
Path target = Paths.get ("D:\\Backup\\MyStuff.txt"); Path file = Files.createFile (target);
很多时候,出于安全的原因,你可能希望在创建的文件上设置一下属性,例如:是否可读/可写/写执行。这些属性依赖于文件系统的种类,你需要使用跟文件系统相应的权限辅助类来完成这种操作。例如,PosixFilePermission和PosixFilePermissions为POSIX文件系统设计的。下面的是在POSIX文件系统上的文件设置读写权限的用法。
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的类。
警告当创建一个带有权限属性的文件时,请注意包含这个文件的文件夹是否有权限的强制约束。例如,你会发现,由于这些限制,尽管你给创建的文件指定了rw-rw-rw权限,实际创建的结果却是rw-r–r–。
删除文件更简单,使用Files.delete (Path)这个方法。
Path target = Paths.get ("D:\\Backup\\MyStuff.txt"); Files.delete (target);
拷贝和移动文件
下面的代码向你展示的是使用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);经常的,在拷贝文件的过程中你可能希望指定一些操作设置。在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...) 方法里的参数来设置。
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 非常便于使用。
- 在Java7中如何操作文件
- Java7中对文件进行操作
- Java7里操作文件
- java7新版文件操作
- 如何在asp.net中操作文件
- 如何在asp.net中操作文件
- java7 NIO2(3) 文件链接操作
- java7中提供的多线程操作
- 在Java 7中如何对文件进行操作
- 如何回复在Git中误操作删除的文件?
- Java7在数字中使用下划线
- 为什么Java7开始在数字中使用下划线(Java7怎样在数字中使用下划线)
- java7 NIO2(4) 文件和目录操作API
- java7 NIO2(5) 文件和目录操作API
- 在 jsp 中操作文件
- 在JSP中操作文件
- 文件在缓存中操作
- 如何在ubuntu通过命令行更新到java7版本
- 如何抓住机遇!
- 量变真的可以引起质变
- TRIZ--揭示了创造发明的内在规律和原理
- 将字节流byte[]转换成成文件
- chapter5 使用Hibernate完成对象持久化
- 在Java7中如何操作文件
- JVM BUG: Internal Error (classFileParser.cpp:3161), pid=1116, tid=3912 Error: ShouldNotReachHere()
- java flash tcp字节流通信(五)-java 伪事件处理器(新)
- 编程珠玑题目集锦
- jQuery 语法
- Android数据存储方式之SharedPreferences
- delphi 调用系统内存整理函数
- java拼接sql语句例子
- 简单的按钮样式