![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=1738825155-ueqkETwcMc4Bp1miCg4HULypt5zwrUmy-0-2a99f80ad006432c0426d89801a90e31)
如果想将文件当作字符串读入,那么可以在调用readAllBytes之后执行下面的代码:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-i.jpg?sign=1738825155-0QSZ4egcAPWJKEDClCdF6shXePcsc30v-0-d83f94d7cb5e92e025114f7587219189)
但是如果希望将文件当作行序列读入,那么可以调用:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-2-i.jpg?sign=1738825155-cQHtWxdOWRzgMazx11jVhEJT1TnOmNlc-0-97a869e5ca7835dbebde18f476f7d590)
相反地,如果希望写出一个字符串到文件中,可以调用:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-3-i.jpg?sign=1738825155-UTZXLVLJkib706M7kicdeNei1GgKOb1h-0-203933d849140ecaed17733878d53c9d)
向指定文件追加内容,可以调用:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-6-i.jpg?sign=1738825155-w3WHDp8eeNuXGA4soMxh4PKxnQgv4Pn7-0-4a5383aa80384c10f7487226a2d8bb6c)
还可以用下面的语句将一个行的集合写出到文件中:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-4-i.jpg?sign=1738825155-hcIuH4s6lLN6MhyGlMI1Pmd3Q7PV0zpp-0-cad77b8fdee00c3cace395dda7d84323)
这些简便方法适用于处理中等长度的文本文件,如果要处理的文件长度比较大,或者是二进制文件,那么还是应该使用所熟知的输入/输出流或者读入器/写出器:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-5-i.jpg?sign=1738825155-JLe2NhDOPV7FTA8AtNOJdFSGZY1OXH1f-0-2897bb50b3db23bedebd71d73e47ca33)
这些便捷方法可以将你从处理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)
打开一个文件,用于读入或写出。