我正在尝试写入读取任何文件并在不同位置写入相同的内容。
File file=new File("<PathToFile>");
String str=FileUtils.readFileToString(file);
在不同位置写入 str,而不对 str 进行任何修改
File writefile=new File("<PathToWriteFile>");
FileUtils.writeStringToFile(writefile, str);
问题是输出文件的大小大于原始文件
编辑:- 我知道解决方案,即按字节读取和写入文件,但我的问题是为什么会发生这种情况?
最佳答案
这可能是不同的字符串编码 - 每个字符占用的空间可能有大约 X2 的差异。您可以使用任何显示编码的文本编辑器来验证它(例如,使用记事本,执行“另存为”而不实际执行它,将在“保存”对话框中显示编码)。
作为解决方案,您可以
- 将其作为二进制数据读取/写入
- 如果您知道正确的字符集,请使用 writeStringToFile(File, String, Charset)
关于Java IO - 输出文件的大小大于原始文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52399040/