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

pal*_*tok 5 java file-io file

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

我想知道File io最有效的过程是什么(我应该使用什么?).我不想要任何编码.我只想处理文本文件.任何简单的示例代码都将非常有用.

谢谢.

leo*_*loy 8

理解和记住的第一要点:

  • :字节序列.

  • 读/写器:字符序列(字符串)

不要混合它们,如果没有必要,不要将它们翻译成另一个,并始终指定编码.

一些快速食谱:

一个文件作为一序列字节(二进制读数).

new FileInputStream(File f);
Run Code Online (Sandbox Code Playgroud)

相同的添加缓冲:

new BufferedInputStream(new FileInputStream(File f));
Run Code Online (Sandbox Code Playgroud)

读取一个文件的字符(序列文本阅读).

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

new InputStreamReader(new FileInputStream(File f),Charset charset);  // good, though verbose
Run Code Online (Sandbox Code Playgroud)

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

new BufferedReader(  ... someReader ... );  
Run Code Online (Sandbox Code Playgroud)

输出/写入几乎相同(输出/写入)


mur*_*uga 5

简单的规则拇指.

文本 - 读者/写作者
二进制 - InputStream/OutputStream

您可以在文件中阅读更多内容

  • 但是有一个问题,`FileWriter/FileReader`是无用的,因为它们不允许你指定编码. (2认同)