java中最好的文件I/O选项?
我是java新手,现在正在学习文件io。但我对io非常困惑,因为有很多对象需要处理(FileReader、FileWriter、BufferedReader、BufferedWriter、FileInputStream、FileOutputStream……可能还有更多) 我想知道什么是文件io最有效的过程(我应该使用什么?),我不需要任何编码。我只想处理文本文件。 任何简单的示例代码都将非常有用 谢谢。简单的经验法则 文本-读者/作者java中最好的文件I/O选项?,java,file,file-io,Java,File,File Io,我是java新手,现在正在学习文件io。但我对io非常困惑,因为有很多对象需要处理(FileReader、FileWriter、BufferedReader、BufferedWriter、FileInputStream、FileOutputStream……可能还有更多) 我想知道什么是文件io最有效的过程(我应该使用什么?),我不需要任何编码。我只想处理文本文件。 任何简单的示例代码都将非常有用 谢谢。简单的经验法则 文本-读者/作者 二进制-输入流/输出流 您可以在理解和记住的第一个要点上阅读
二进制-输入流/输出流
您可以在理解和记住的第一个要点上阅读更多内容:
- 流:字节的序列
- 读写器:字符序列(字符串)
new BufferedInputStream(new FileInputStream(File f));
以字符序列的形式读取文件(文本读取)
添加面向行的缓冲(读取文本行)
输出/写入实际上是相同的(输出/写入)读取 以下内容将允许您逐行阅读
BufferedReader br = new BufferedReader(new FileReader(fileLocationTxt));
写作
以下内容将允许您逐行/逐部分编写
DataOutputStream ds = new DataOutputStream(new FileOutputStream(newLocation));
至于你的问题,没有最好的选择。即使在这里,您也可以看到我们必须同时使用2个或更多个构造函数(看看构造函数,它们接受其他读写器或inputStream/outputStream)
最好的选择取决于您真正想要做什么您可以尝试不同的选择…通常BufferedReader包装文件读取器是最好的考虑使用java中的新IO API..我看到了NIO,发现它有点耳熟能详(我的错!)(无法理解代码)不过有一个问题,
FileWriter/FileReader
是无用的,因为它们不允许您指定编码。但我听说FileReader、FileWriter使用默认编码或类似的编码,所以这有点棘手。如果我错了,请纠正我。实际上,第一个是文本文件,第二个是二进制文件,如果没有,请说明使用FileReader()?我看到一些人不喜欢它。(也不明白为什么?)@palatok:FileReader用于读取字符。如果同时使用,可能会很糟糕。但并非总是如此。可能有一些原因足以说明这一点。BufferedReader用于一次读取多个字符。它可以获得逐行读取的方法,这非常有帮助。它们还可以提高性能。这就是简单的解释ion.@Cratylus:是的,包括文本文件。这是一个非常有用的答案。还有一件事,什么是字符集?字符集的值是多少?它将与文件使用的字符编码相匹配。如果有疑问,UTF-8
是一个流行的选择。@palatok:文件本身就是一个字节序列。要将其转换为文本,必须指定字符集编码,目前使用最多的是UTF-8和ISO-8859-1。也请阅读此强制性链接:
new BufferedReader( ... someReader ... );
BufferedReader br = new BufferedReader(new FileReader(fileLocationTxt));
DataOutputStream ds = new DataOutputStream(new FileOutputStream(newLocation));