<noframes id="rrprp"><ruby id="rrprp"><ruby id="rrprp"></ruby></ruby>

                <track id="rrprp"></track>

                技术中心

                这里象征着我们的态度和能力

                在Java 7里如何对文件进行操作
                发布者:admin    信息来源:本站原创    发布时间:2011-12-30      浏览次数:6798
                分享到:

                新浪微博

                腾讯微博

                QQ空间

                豆瓣网

                QQ好友

                下面的代码片段是由经过验证的程序修改而来。观察这些代码片段你会发现,跟以前的版本相比,在Java7里,文件相关的操作变得简单的多了。通过使用新的Files类里提供的各种方法,你可以只用一行代码就能完成下列的文件操作:

                • 创建文件
                • 删除文件
                • 复制文件
                • 文件移动/改名

                这篇文件是以你对Java7里提供的新的Path类很熟悉为前提,如果你不熟悉这个类,这里就简单说一句,Path是文件系统里对位置的一个逻辑概念,例如c: 和../foobar.txt都是Path。

                创建和删除文件

                下面的代码片段向你展示的是用 Files.createFile (Path target) 方法创建文件的基本用法。

                1. Path target = Paths.get ("D:BackupMyStuff.txt"); Path file = Files.createFile (target);  
                2.  

                很多时候,出于安全的原因,你可能希望在创建的文件上设置一下属性,例如:是否可读/可写/写执行。这些属性依赖于文件系统的种类,你需要使用跟文件系统相应的权限辅助类来完成这种操作。例如,PosixFilePermission和PosixFilePermissions为POSIX文件系统设计的。下面的是在POSIX文件系统上的文件设置读写权限的用法。

                1. Path target = Paths.get ("D:BackupMyStuff.txt"); Set<PosixFilePermission> perms  =   
                2.  
                3. PosixFilePermissions.fromString ("rw-rw-rw-"); FileAttribute<Set<PosixFilePermission>> attr  =   
                4.  
                5. PosixFilePermissions.asFileAttribute (perms); Files.createFile (target, attr);  
                6.  

                这个java.nio.file.attribute包里提供了很多关于FilePermission的类。

                警告当创建一个带有权限属性的文件时,请注意包含这个文件的文件夹是否有权限的强制约束。例如,你会发现,由于这些限制,尽管你给创建的文件指定了rw-rw-rw权限,实际创建的结果却是rw-r–r–。

                删除文件更简单,使用Files.delete (Path)这个方法。

                1. Path target = Paths.get ("D:BackupMyStuff.txt"); Files.delete (target);  

                拷贝和移动文件

                下面的代码向你展示的是使用Files.copy (Path source, Path target)方法做文件拷贝的基本用法。

                1. Path source = Paths.get ("C:My DocumentsStuff.txt");  
                2. Path target = Paths.get ("D:BackupMyStuff.txt"); Files.copy (source, target);  

                经常的,在拷贝文件的过程中你可能希望指定一些操作设置。在Java7里,你可以通过使用StandardCopyOption enum来设置这些属性。下面看一个例子。

                1. import static java.nio.file.StandardCopyOption.*;  
                2.  
                3. Path source = Paths.get ("C:My DocumentsStuff.txt");  
                4. Path target = Paths.get ("D:BackupMyStuff.txt");  
                5.  
                6. 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.  
                3. Path source = Paths.get ("C:My DocumentsStuff.txt");  
                4. Path target = Paths.get ("D:BackupMyStuff.txt"); Files.move (source, target, REPLACE_EXISTING,   
                5.  
                6. COPY_ATTRIBUTES);  

                可以看出,新的用于文件操作的NIO.2 API 非常便于使用。

                4000-880-989
                (24小时热线)
                联系客服
                微信公众号

                官方公众号

                小程序

                ?2008-2022 CORPORATION ALL Rights Reserved. 昆明奥远科技有限公司版权所有 滇ICP备09003328号-1 滇公网安备 53011102000818号
                昆明那家网络公司好,新媒体运营,网站优化,网络推广,网站建设,网页设计,网站设计,网站推广,云南网站公司,昆明新媒体公司,云南网红主播,昆明SEO公司,昆明网站建设,昆明网络推广,昆明网站优化,昆明网站推广,红河网站建设,大理网络公司,曲靖网络公司,丽江网站设计,昭通网络公司,保山大数据服务,智慧高速建设,智慧校园服务,云南IDC服务商,网络安全测评,等保测评,网站关键词排名优化服务,服务客户尽超2000余家,一切尽在奥远科技,服务电话:13888956730
                777奇米影视一区二区三区

                          <noframes id="rrprp"><ruby id="rrprp"><ruby id="rrprp"></ruby></ruby>

                              <track id="rrprp"></track>