java中文件处理之图片
- 创造
- 删除
- 复制
- 移动/重命名
提示关于Path的快速注释。 这篇文章假定您已经对新的Java 7 Path类有所了解,如果不熟悉的话,这里有个快速介绍! 路径是文件系统上位置的逻辑抽象,例如, “ c:\” 是 路径 ,“ ../ foobar.txt”一样
让我们从文件的创建和删除开始。
创建和删除文件
通过使用Files类中的简单帮助程序方法,您还可以创建文件并轻松删除它们。
提示如果要运行本节中的代码段,请用与文件系统匹配的实际路径替换实际路径!
以下代码段显示了使用Files.createFile(Path target)方法的基本文件创建。
Path target = Paths.get("D:\\Backup\\MyStuff.txt");
Path file = Files.createFile(target);
通常,您出于安全目的以及为了读取和/或写入和/或执行是否知道正在创建文件而想要在该文件上指定一些文件属性。 由于这取决于文件系统,因此您需要利用特定于文件系统的文件权限类及其帮助程序。
例如,用于POSIX兼容文件系统的PosixFilePermission和PosixFilePermissions 。 设置POSIX文件系统中的owner-group-all的读写示例如下。
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类的列表。 在The Well-Grounded Java Developer的第2章中还进一步详细介绍了文件属性支持。
警告创建具有特定权限的文件时,请注意该文件的父目录正在执行的所有umask限制或限制性权限。 例如,您可能会发现,即使为新文件指定了rw-rw-rw ,由于这些限制,它实际上也被创建为rw-r–r– 。
删除文件要简单一些,可以通过简单的Files.delete(Path)方法执行。
Path target = Paths.get("D:\\Backup\\MyStuff.txt");
Files.delete(target);
接下来快速概述在文件系统中复制和移动文件。
复制和移动文件
通过使用Files类中的简单辅助方法,您可以轻松执行复制和移动操作。 下面的代码片段使用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);
通常,您想在复制操作中指定一些选项。 在Java 7中,可以使用StandardCopyOption枚举来指定这些选项。 下一个示例使用覆盖(即替换现有)选项。
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 (确保移动操作的两面都成功或该操作被回滚)。移动操作与复制操作非常相似,并使用原子文件执行。 move(Path source,Path target)方法。
再次,您通常希望此移动带有一些复制选项,因此可以使用Files.move(Path source,Path target,CopyOptions ...)方法(请注意varargs的使用)。
在这种情况下,我们希望在移动源文件时保留其属性,并覆盖目标文件(如果存在)。
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易于使用,我们希望您喜欢这个小尝尝!
编码愉快! 不要忘记分享!
参考文献:
- 在Java 7开发者博客上从我们的JCG合作伙伴处以Java 7 操作文件
- 经验丰富的Java开发人员
相关文章:
- JDK中的设计模式
- Java内存模型-快速概述和注意事项
- Java Fork / Join进行并行编程
- 依赖注入–手动方式
- 了解和扩展Java ClassLoader
翻译自: https://www.javacodegeeks.com/2011/09/manipulating-files-in-java-7.html
java中文件处理之图片