![Java核心技术·卷Ⅱ:高级特性(原书第10版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/937/34339937/b_34339937.jpg)
2.5.2 读写文件
Files类可以使得普通文件操作变得快捷。例如,可以用下面的方式很容易地读取文件的所有内容:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/085-i.jpg?sign=1739361155-tbc1gtll9Iq009Xbv1u9Fv9VO9OkSO4J-0-b8e2d338432a0773f772f3941502b906)
如果想将文件当作字符串读入,那么可以在调用readAllBytes之后执行下面的代码:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-i.jpg?sign=1739361155-y1p6hRruHOaqnPOwFTWoobA0ZHfkUZC9-0-33001920861bfeea51ba95cfd2c995a4)
但是如果希望将文件当作行序列读入,那么可以调用:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-2-i.jpg?sign=1739361155-uuSI38UN0gqLEIUNoBg5MrgGHK8OUhxU-0-20f46479da7a1e460ec06aa01b1cb0d6)
相反地,如果希望写出一个字符串到文件中,可以调用:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-3-i.jpg?sign=1739361155-F0Zux2MEleQiB1Kx1sjeU424QAkmJWxE-0-b7c40f32011e8a02d3aabf7c2cad8940)
向指定文件追加内容,可以调用:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-6-i.jpg?sign=1739361155-GeQh1N5mviqdbmvIn5XSM93Nnu86gRdE-0-0ef9d2c058ad80ea4faf4c04ecad676d)
还可以用下面的语句将一个行的集合写出到文件中:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-4-i.jpg?sign=1739361155-yKykQfReh3YAhzXsZ7kxcJFsf6zO98en-0-b8b0b0b5341d1776956288bce51c9abc)
这些简便方法适用于处理中等长度的文本文件,如果要处理的文件长度比较大,或者是二进制文件,那么还是应该使用所熟知的输入/输出流或者读入器/写出器:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-5-i.jpg?sign=1739361155-kLfFUDCZd12Uh59mu2lXZxqApnwAx8ov-0-9e05623929270129229968998fa404b7)
这些便捷方法可以将你从处理FileInputStream、FileOutputStream、BufferedReader和BufferedWriter的繁复操作中解脱出来。
java.nio.file.Files 7
·static byte[]readAllBytes(Path path)
·static List<String>readAllLines(Path path,Charset charset)
读入文件的内容。
·static Path write(Path path,byte[]contents,OpenOption...options)
·static Path write(Path path,Iterable<?extends CharSequence>contents,OpenOption options)
将给定内容写出到文件中,并返回path。
·static InputStream newInputStream(Path path,OpenOption...options)
·static OutputStream newOutputStream(Path path,OpenOption...options)
·static BufferedReader newBufferedReader(Path path,Charset charset)
·static BufferedWriter newBufferedWriter(Path path,Charset charset,OpenOption...options)
打开一个文件,用于读入或写出。