`

在Java 7里如何对文件进行操作

 
阅读更多

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

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

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

创建和删除文件

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

  1. Path target = Paths.get ("D:\\Backup\\MyStuff.txt"); Path file = Files.createFile (target);    




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

  1. Path target = Paths.get ("D:\\Backup\\MyStuff.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:\\Backup\\MyStuff.txt"); 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"); Files.copy (source, target);    



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

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



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

文章出自:外刊IT评论

分享到:
评论

相关推荐

    java实现对文件的各种操作的工具类.md

    # java实现对文件的各种操作的工具类 ## 可以实现的操作有: 1. 删除单个文件 2. 删除文件夹及文件夹下的文件 3. 使用文件流对单个文件进行复制 4. 复制整个文件夹内容(包含子文件夹中的所有内容) 5. ...

    用java对文件进行操作

    .java文件,main中有测试用的代码,粘到src下可直接运行使用。 这个版本中目前有的方法为: 1.创建txt文件的方法。 2.过滤文件的方法。 3.修改文件名的方法。 4.获取文件大小,如果是文件夹则统计有多少个文件的方法...

    java 操作文件工具类 java 操作文件工具类

    java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java 操作文件工具类 java 操作文件工具类java 操作文件工具类java ...

    java文件操作类

    java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java文件操作类java...

    Java对Samba进行上传与下载文件-jcifs

    在Java中,利用jcifs进行Samba文件操作的基本步骤如下: 1. **配置认证**:首先,你需要创建一个NtlmPasswordAuthentication对象,提供用户名、密码和域名(或者工作组),这是连接到Samba服务器的身份验证凭证。 ...

    java操作mongodb存储文件实例

    将一系列图片文件存储到MongoDB中 java操作mongodb存储文件

    Java对各种文件的操作详解

    Java对各种文件的操作详解,要的快下哦

    Java写入大数据文件

    在写入和切分文件操作完成后,程序使用singleFileDataSort方法将每个小文件的数据进行排序,以便后续的数据处理操作。最后,程序使用deathDataFile方法对十个小文件的数据进行比较和整合,以提高数据的精度和可靠性...

    java实现文件加密解密

    在 Java 中,文件操作的流程一般为:打开--&gt;读取--&gt;对内容进行变换--&gt;写入--&gt;关闭。常规性文件操作会用到的类有五个:File、InputStream、OutputStream、FileInputStream、FileOutputStream,均包含在 java.io 下面...

    java文件读写操作

    这个文件里面包含了java的IO流对文件的操作和java通道加内存映射对文件操作的源码

    Java读取json文件并对json数据进行读取、添加、删除与修改操作

    开发过程中经常会遇到json数据的处理,而单独对json数据进行增删改并不方便,尤其是Geojson文件的处理,通过对网络资料的整理总结,下面介绍Java语言方法对json数据进行读取、添加、删除与修改操作。

    Java文件同步开源项目Sync

    7. **命令行界面**:Sync的命令行界面简洁明了,用户可以通过简单的命令参数进行配置,方便在自动化脚本中调用。 8. **跨平台**:作为Java项目,Sync天生具备跨平台特性,可在Windows、Linux、Mac OS等操作系统上...

    Java版文件系统

    然而,通过使用Java提供的类库和API,我们可以构建一个模拟的文件系统,它能够进行基本的文件操作,如创建、读取、写入和删除文件。以下是一些关于这个话题的关键知识点: 1. **Java I/O流**:Java的I/O流是实现...

    ajax实现java文件下载

    2. **Java文件下载**:在Java Web开发中,服务器端通常使用Servlet或Controller来处理文件下载请求。这些组件会根据客户端请求,读取文件内容,设置合适的HTTP响应头(如Content-Type,Content-Disposition等),并...

    Java 读取、添加、删除修改json文件数据范例.rar

    Java 操作json文件的例子,对json数据进行读娶添加、删除、修改等操作,下载源码后,重点参见JsonConvert.java文件,  读取nameID.txt文件中的NAMEID字段(key)对应值(value)并存储,读取NAMEID对应值,读取原始...

    java导入导出xml文件

    本文将深入探讨如何在Java中进行XML文件的导入与导出。 首先,理解XML的基本结构至关重要。XML文件由一系列的元素构成,每个元素都有可能包含子元素或者文本内容。元素通过开始标签 `&lt;tag&gt;` 和结束标签 `&lt;/tag&gt;` ...

    JAVA文件打开关闭操作

    JAVA中JFileChooser的使用方法 实现打开保存和关闭文件

    多线程对文件读写操作(java)

    2. **线程安全的文件操作**:在进行多线程文件操作时,线程安全是非常重要的。如果不正确地同步线程,可能会导致数据不一致或者丢失。Java提供了一些同步机制,如`synchronized`关键字、`Lock`接口(如`...

    Java程序创建Manifest文件

    当我们需要运行一个与其他jar文件有关联jar文件时,如果jar文件里面的MANIFEST.MF文件没有配置好,那在运行时就要报异常:Exception in thread "main" java.lang.NoClassDefFoundError。原因:未找到关联jar文件里面...

    java操作mongoDB实现文件上传预览打包下载

    对于"java操作mongoDB实现文件上传预览打包下载"这个主题,我们将深入探讨如何利用Java与MongoDB交互,实现文件的上传、下载、预览以及打包下载等功能。 首先,我们需要在Java项目中引入MongoDB的驱动库,通常是...

Global site tag (gtag.js) - Google Analytics