java - Java 中的最佳文件 I/O 选项?

标签 java file file-io

我是 java 的新手,现在正在学习文件 io。但我对 io 很困惑,因为有很多对象要处理它(FileReader、FileWriter、BufferedReader、BufferedWriter、FileInputStream、FileOutputStream ... 可能还有更多)。

我想知道文件 io 最有效的过程是什么(我应该使用什么?)。我不需要任何编码。我只想处理文本文件。 任何简单的示例代码都会有很大帮助。

谢谢。

最佳答案

要理解和记住的第一个要点:

  • :字节序列。

  • Reader/Writer:字符序列(字符串)

不要混合使用它们,如果没有必要,不要将它们转换为另一种,并且始终指定编码。

一些快速食谱:

字节序列读取文件(二进制读取)。

new FileInputStream(File f);

同样加入缓冲:

new BufferedInputStream(new FileInputStream(File f));

读取一个文件作为字符序列(文本读取)。

new FileReader(File f); // ugly, dangerous, does not let us specify the encoding

new InputStreamReader(new FileInputStream(File f),Charset charset);  // good, though verbose

添加面向行的缓冲(读取文本行)

new BufferedReader(  ... someReader ... );  

输出/写入实际上是相同的(输出/写入器)

关于java - Java 中的最佳文件 I/O 选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13959766/

相关文章:

bash - 使用 shell 脚本查找特定文件类型的文件

c - fclose 似乎不能在 C 中工作

java - Spring Boot测试嵌入MongoDB : Combine MockMVC with @DataMongoTest

java - 文件不以换行符结尾 [NewlineAtEndOfFile]

java - 从文件读取时添加了空格...?

android - 使用 Adob​​e Reader 在 Android 中打开 PDF

c - fseek 仅在 fread 调用之后而不是读取后使用?

Java语法数组

java - LWUIT 触摸设备滚动问题

java - 使用带有通配符的泛型类型作为它自己的类型