![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=1738861529-RmBp65mnJPjvqdIazgi1tY7K1xD2DZUu-0-365d9b0514440742afa4ccd9e200beec)
如果想将文件当作字符串读入,那么可以在调用readAllBytes之后执行下面的代码:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-i.jpg?sign=1738861529-QwgHxNMWmKkouRxEDwR73Dt9CYRZtKiM-0-b7723c9fdb7fcfa477ceadd23ec5b305)
但是如果希望将文件当作行序列读入,那么可以调用:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-2-i.jpg?sign=1738861529-yjtnlZ5bVCzAXvcGlqinPkqsYR4SWGmw-0-293a32bacb667b5fecc794e6d323a2d7)
相反地,如果希望写出一个字符串到文件中,可以调用:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-3-i.jpg?sign=1738861529-OODhRdEiV9xfXAbTyILCQCnt4hBeH6Hy-0-2fc8b7b52b704ad8ee519f107884dc52)
向指定文件追加内容,可以调用:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-6-i.jpg?sign=1738861529-CxRMjFY87RnZ14qaMWEeZpr2KqWKZcA5-0-3d30e7f2c9a2957d96f1df8cb9db8cdd)
还可以用下面的语句将一个行的集合写出到文件中:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-4-i.jpg?sign=1738861529-Lwg4AJZrYf06xwC6uNNhC7npThY1Kjmd-0-b436d916f490299468d4e331a40d6568)
这些简便方法适用于处理中等长度的文本文件,如果要处理的文件长度比较大,或者是二进制文件,那么还是应该使用所熟知的输入/输出流或者读入器/写出器:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-5-i.jpg?sign=1738861529-wTYM0d7ncW5HBA3Ackxq08Z3BHI4ESNp-0-eb28d8b4a45a064dd7cfd1264e28d6d4)
这些便捷方法可以将你从处理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)
打开一个文件,用于读入或写出。