我是java的新手,现在正在学习File io。但我对io非常困惑,因为有很多对象需要处理它(FileReader,FileWriter,BufferedReader,BufferedWriter,FileInputStream,FileOutputStream ......可能还有更多)。
我想知道File io最有效的过程是什么(我应该使用什么?)。我不想要任何编码。我只想处理文本文件。 任何简单的示例代码都会非常有用。
谢谢。
答案 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)
答案 2 :(得分:0)
<强>读强>
以下将允许您逐行阅读
BufferedReader br = new BufferedReader(new FileReader(fileLocationTxt));
<强>编写强>
以下将允许您逐行/逐个部分地写
DataOutputStream ds = new DataOutputStream(new FileOutputStream(newLocation));
至于你的问题,没有最佳选择。即使在这里,您也可以看到我们必须同时使用2个或更多(查看构造函数。它们接受其他读取器/编写器或inputStream / outputStream。
最好的选择取决于你真正想做的事情