Java NIO Files类(java.nio.file.Files)提供了几种操作文件的方法,这里介绍一些最常用的方法。
java.nio.file.Files类可与java.nio.file.Path实例一起使用,因此在使用Files类之前,需要了解Path类。
1.Files.exists()
Files.exists()方法检查文件系统中是否存在给定的Path。
如果你打算创建一个新目录,则首先要创建相应的Path实例,然后再创建目录。
由于Path实例可能会指向文件系统中不存在的路径,因此可以使用Files.exists()方法确定它们是否存在。
一个Java Files.exists()示例:
Path path = Paths.get("data/logging.properties"); boolean pathExists = Files.exists(path, new LinkOption[]{ LinkOption.NOFOLLOW_LINKS});
创建一个Path实例,该实例指向我们要检查是否存在的路径。
2.Files.createDirectory()
Files.createDirectory()方法从Path实例创建一个新目录。示例:
Path path = Paths.get("data/subdir"); try { Path newDir = Files.createDirectory(path); } catch(FileAlreadyExistsException e){ // the directory already exists. } catch (IOException e) { //something else went wrong e.printStackTrace(); }
第一行创建Path实例,该实例代表要创建的目录。在try-catch块内,使用路径作为参数调用Files.createDirectory()方法。如果创建目录成功,则将返回一个Path实例,该实例指向新创建的路径。
如果目录已经存在,则将抛出java.nio.file.FileAlreadyExistsException。如果还有其它错误,可能会引发IOException。例如,如果所需的新目录的父目录不存在,则可能引发IOException。
3.Files.copy()
Files.copy()方法将文件从一个路径复制到另一路径。示例:
Path sourcePath = Paths.get("data/logging.properties"); Path destinationPath = Paths.get("data/logging-copy.properties"); try { Files.copy(sourcePath, destinationPath); } catch(FileAlreadyExistsException e) { //destination file already exists } catch (IOException e) { //something else went wro