- Java核心技术·卷Ⅱ:高级特性(原书第10版)
- (美)凯S.霍斯特曼
- 397字
- 2024-12-20 22:36:00
2.5.2 读写文件
Files类可以使得普通文件操作变得快捷。例如,可以用下面的方式很容易地读取文件的所有内容:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/085-i.jpg?sign=1739552583-0E2BVpacOtnJDZL5hTMMtCMN2KQ8qJvB-0-de77cd266aff9167a0c13121f2c71f9d)
如果想将文件当作字符串读入,那么可以在调用readAllBytes之后执行下面的代码:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-i.jpg?sign=1739552583-LbDwXfqSBJ73jkjWEaD66imPAoYIGyPS-0-8f8757698bdcdcb9d2b601f9988ac782)
但是如果希望将文件当作行序列读入,那么可以调用:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-2-i.jpg?sign=1739552583-G4puIAR1Ok7sc1ppkxxwkiS72cgSWWcD-0-e45d77c8a80ea1aa6c07b5699627d1ee)
相反地,如果希望写出一个字符串到文件中,可以调用:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-3-i.jpg?sign=1739552583-gliitBwp8uaYz8xDDmcNWqg48EjTqRWb-0-79836625c3cf3fde101d5dc3cd334fd7)
向指定文件追加内容,可以调用:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-6-i.jpg?sign=1739552583-rPQuSphhzOzDs06Gx7hWdoSgT2II8rAe-0-9c5efb658bfe4bcc78f94d9c8e7f225c)
还可以用下面的语句将一个行的集合写出到文件中:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-4-i.jpg?sign=1739552583-zDHVMbthxz41EsPY4T1roc6IGC0VzHGb-0-edd1847d8b6defc3a515b897e61a1d9a)
这些简便方法适用于处理中等长度的文本文件,如果要处理的文件长度比较大,或者是二进制文件,那么还是应该使用所熟知的输入/输出流或者读入器/写出器:
![](https://epubservercos.yuewen.com/F21227/18365861501241106/epubprivate/OEBPS/Images/086-5-i.jpg?sign=1739552583-fqgDIpJXdbUGEaOLIMMneU0mRpAHVw1c-0-50e3a5e90ba0d3f255dd6538aa2d7ef0)
这些便捷方法可以将你从处理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)
打开一个文件,用于读入或写出。