Java 17 NIO知识点文件的操作
Files类主要来自java.base模块和包java.nio

该类只包含对文件、目录或其他类型的文件进行操作的静态方法。在大多数情况下,这里定义的方法将被委托给相关的文件系统提供者来执行文件操作。
文件
这个类是常量类,不能继承,也没有对应的构造方法。并定义了一系列静态方法。我们先来看看这个类的定义。
公共最终类文件
根据文件的操作类型,分为创建文件、删除文件、读取文件、修改文件、复制文件等一系列操作方法。这里的文件是指文件路径,包括文件和目录。
创建相关方法。
在讨论创建类的方法之前,先看一个接口:FileAttribute。
接口被定义为:
公共接口文件属性
该接口主要封装了文件的属性的值,可以在调用相应的createFile和createDirectory方法新建文件或目录时自动设置。
他的实现主要是在java.nio.file.attribute是接口和类,主要用来提供对文件和文件系统属性的访问。
创建目录和创建目录
注意两者的区别。如果创建一个目录,很明显在创建的目录前面的目录已经存在,可以使用createDirectorys方法创建。如果您不能保证文件的存在,您需要使用createDirectories来创建它。
如果创建了目录D:CodeJava,如果目录D:Code不存在,使用createDirectory时会出现异常。
Java . nio . file . nosuchfile exception
此方法的代码演示:
path path create directory = files . create directory);system . out . println;path path create directories = files . create directories);system . out . println;
创建并存在和不存在
创建文件,但是当文件已经存在时,它将失败。因此,可以使用exists来判断文件是否已经存在。如果它已经存在,您不需要重新创建它,您将再次失去性能。判断文件是否存在的相反方法是判断文件是否没有notExists方法。
要注意创建文件的方法,createFile之前的目录必须存在。否则会出现文件找不到的异常。所以在实际工作中,可以先用createDirectorys创建相应的目录,然后再创建文件。
演示代码如下:
string dir = " E: Code Java Files Demo ";String fileName = " log.txtif)){ system . out . println;Files.createDirectories} Path pathFile = Path.ofif){ Path create file = files . create file;system . out . println;} boolean is created = files . exists;system . out . println;
完整的代码和运行效果
创建链接并创建符号链接

要指定快捷方式的创建,需要注意的是,对于createSymboliclink方法,在Windows中需要管理员权限,否则将出现客户端没有所需权限的异常。
演示代码如下:
string dir = " E: Code Java Files Demo ";String fileName = " log.txtPath pathlink = Files.createlink,path . of);system . out . println;path path symbolic link = files . createsymbolic link,path . of);system . out . println;
创建临时目录和创建临时文件
代码如下:
path pathTempDirectory = files . createtempdirectory;system . out . println;path pathtempdirectory 2 = files . createtempdirectory," prefix ");system . out . println);path pathTempFile = files . create tempfile;system . out . println;path pathtempfile 2 = files . create tempfile,"前缀","后缀");system . out . println;
创建临时目录和临时文件。对于Windows,临时目录位于:系统字母/用户/用户名/AppData/Local/Temp目录中。对于临时目录和文件,一定要记得用完之后清理,否则应用对应的临时目录会越来越大,要懂得回收自己的垃圾。您可以使用File.deleteOnExit方法删除它。退出程序后,删除相应的文件或目录。
删除的相关方法。
和deleteIfExists。
对于这种方法,主要是删除一个目录或文件,指定path的Path对象。
files . delete);boolean is delete = files . deleteifexists);system . out . println;
相关的判断方法
直接检查代码:
Path basePath = Path.ofsystem . out . println);system . out . println);system . out . println);system . out . println);system . out . println);system . out . println);system . out . println);system . out . println);
阅读和写作的相关方法
ReadAllLines和ReadString
ReadAllLines相关方法可用于按行读取数据,该方法返回的集合是一个列表。
list listStr = files . read all lines);system . out . println);
当然,你也可以指定它的字符集。
Files.readAllLines,charset . for name);
当然也可以用直读成串。此方法是一个重载方法。如上所述,除了传入路径之外,字符集也被传入。
完整的代码如下:
在阅读的基础上,还要有文字档案。

Write和WriteString
对于writing方法,有两个重载方法,对应于总共五个可用的方法。
常用文件一一介绍。过过眼瘾,在此基础上,迭代自己项目中的实际案例。目前就这些。最近项目进展缓慢,更新内容略慢。我希望我能更有效地安排我的时间。
编程的学习通常是最简单的,业务才是实际项目中最重要的。不懂财务就写不好财务软件。
感谢阅读,喜欢,关注,收藏。


