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

时间:2012-12-19 19:32:29

标签: java file file-io

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

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

谢谢。

3 个答案:

答案 0 :(得分:8)

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

  • 信息流字节的序列。

  • 读者/作家字符序列字符串

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

一些快速食谱:

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

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 ... );  

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

答案 1 :(得分:5)

简单的规则。

文字 - 读者/作者
二进制 - InputStream / OutputStream

您可以在Files

了解更多信息

答案 2 :(得分:0)

<强>读

以下将允许您逐行阅读

BufferedReader br = new BufferedReader(new FileReader(fileLocationTxt));

<强>编写

以下将允许您逐行/逐个部分地写

DataOutputStream ds = new DataOutputStream(new FileOutputStream(newLocation));

至于你的问题,没有最佳选择。即使在这里,您也可以看到我们必须同时使用2个或更多(查看构造函数。它们接受其他读取器/编写器或inputStream / outputStream。

最好的选择取决于你真正想做的事情