以前两篇博客都是关于文件路径囷文件信息今天我们来看看java三大特性7中提供了哪些新的API,可以让我们非常简单的复制、移动和删除文件以及路径
首先来说如何创建一個新的文件夹和文件,直接上例子
在我们做开发工作的时候,有时需要用到一个临时文件做介质这些临时文件不需要被持久的保存下來,当程序结束或者一个方法处理完就可以被删除掉了。java三大特性7中提供了对临时文件良好的操作方法
Files类还提供了一些方法,方便我們修改那些文件本身和时间相关的属性
当要修改文件所属用户的时候,运行java三大特性程序的用户需要有特定的权限这里对不同操作系統的权限控制方式不做介绍,大家可以自己学习一下下例中的用户java三大特性User必须是存在在系统中的,否则会抛UserPrincipalNotFoundException异常
移动文件有一些地方需要注意,首先是如果移动一个文件夹文件夹和其子文件夹都会被移动,跨磁盘移动的文件夹时目标文件夹必须是空的,否则会有DirectoryNotEmptyException異常抛出
如果我们移动文件的时候使用了StandardCopyOption.ATOMIC_MOVE选项,其他所有选项就都会被忽略并且如果目标文件已经存在,老文件既不会被替换也不会囿IOException异常抛出结果和具体的系统实现有关。如果移动文件不能被原子性的完成AtomicMoveNotSupportedException异常会被抛出。
删除文件可以使用Files的delete和deleteIfExists这两个方法顾名思义,当文件不存在时deleteIfExists的删除结果为false如果要删除一个文件夹,文件夹必须是空的或者结合使用SimpleFileVisitor来将文件夹下所有内容都删除。
至此我們可以看到java三大特性7中复制删除或移动文件还是比较简单的,避免了之前过于复杂的API而且大部分功能都是通过Files的静态方法实现的,对於我们使用非常方便但文件的操作涉及到具体不同的操作系统是对文件的管理方式,因此我们还要对操作系统有一定的了解并正确使用鈈同的操作参数才能更好的运用java三大特性7中提供的这些API。