Java 7中对文件进行操作
这篇文件是以你对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 perms= PosixFilePermissions.fromString("rw-rw-rw-");
3. FileAttribute
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 非常便于使用。
【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!
Java开发高端课程免费试学
大咖讲师+项目实战全面提升你的职场竞争力
- 海量实战教程
- 1V1答疑解惑
- 行业动态分析
- 大神学习路径图
相关推荐
更多2019-05-22
2019-05-22
达内就业喜报
更多>Java开班时间
-
北京 丨 11月27日
火速抢座 -
上海 丨 11月27日
火速抢座 -
广州 丨 11月27日
火速抢座 -
兰州 丨 11月27日
火速抢座 -
杭州 丨 11月27日
火速抢座 -
南京 丨 11月27日
火速抢座 -
沈阳 丨 11月27日
火速抢座 -
大连 丨 11月27日
火速抢座 -
长春 丨 11月27日
火速抢座 -
哈尔滨 丨 11月27日
火速抢座 -
济南 丨 11月27日
火速抢座 -
青岛 丨 11月27日
火速抢座 -
烟台 丨 11月27日
火速抢座 -
西安 丨 11月27日
火速抢座 -
天津 丨 11月27日
火速抢座 -
石家庄 丨 11月27日
火速抢座 -
保定 丨 11月27日
火速抢座 -
郑州 丨 11月27日
火速抢座 -
合肥 丨 11月27日
火速抢座 -
太原 丨 11月27日
火速抢座 -
苏州 丨 11月27日
火速抢座 -
武汉 丨 11月27日
火速抢座 -
成都 丨 11月27日
火速抢座 -
重庆 丨 11月27日
火速抢座 -
厦门 丨 11月27日
火速抢座 -
福州 丨 11月27日
火速抢座 -
珠海 丨 11月27日
火速抢座 -
南宁 丨 11月27日
火速抢座 -
东莞 丨 11月27日
火速抢座 -
贵阳 丨 11月27日
火速抢座 -
昆明 丨 11月27日
火速抢座 -
洛阳 丨 11月27日
火速抢座 -
临沂 丨 11月27日
火速抢座 -
潍坊 丨 11月27日
火速抢座 -
运城 丨 11月27日
火速抢座 -
呼和浩特丨11月27日
火速抢座 -
长沙 丨 11月27日
火速抢座 -
南昌 丨 11月27日
火速抢座 -
宁波 丨 11月27日
火速抢座 -
深圳 丨 11月27日
火速抢座 -
大庆 丨 11月27日
火速抢座