StevenBot-Saltsam

眼睛能装下世界,为何却装不下眼泪? 一只风筝一辈子只为一根线冒险。 那不是一场游戏,为何总有一根线牵着心怀,隐隐作疼? 那不是一段邂逅,为何飘在桥上的影子,总缠进梦乡? 那不是一个梦境,为何你的温柔私语,总是不经意的响起?

导航

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

datas link

OSChinal Sources codes Library

搜索

最新评论

阅读排行榜

评论排行榜

java7 文件create move delete

下面的代码片段是由经过验证的程序修改而来。观察这些代码片段你会发现,跟以前的版本相比,在 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 非常便于使用。
本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2011-10/46053.htm

posted on 2011-10-27 20:25 Steven_bot 阅读(748) 评论(0)  编辑  收藏 所属分类: 一些收藏


只有注册用户登录后才能发表评论。


网站导航: