Java IO - 输出文件的大小大于原始文件

标签 java io

我正在尝试写入读取任何文件并在不同位置写入相同的内容。

File file=new File("<PathToFile>");
String str=FileUtils.readFileToString(file);

在不同位置写入 str,而不对 str 进行任何修改

File writefile=new File("<PathToWriteFile>");
FileUtils.writeStringToFile(writefile, str);

问题是输出文件的大小大于原始文件

编辑:- 我知道解决方案,即按字节读取和写入文件,但我的问题是为什么会发生这种情况?

最佳答案

这可能是不同的字符串编码 - 每个字符占用的空间可能有大约 X2 的差异。您可以使用任何显示编码的文本编辑器来验证它(例如,使用记事本,执行“另存为”而不实际执行它,将在“保存”对话框中显示编码)。

作为解决方案,您可以

  1. 将其作为二进制数据读取/写入
  2. 如果您知道正确的字符集,请使用 writeStringToFile(File, String, Charset)

关于Java IO - 输出文件的大小大于原始文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52399040/

相关文章:

java - 修改库存程序以使用 GUI

c++ - C++ 中的流式 I/O

c - 如何阻止 execve 退出原始程序

c++ - 使用 C++ 在一行中读取多种数据类型

go - 长时间运行复制到 bytes.Buffer

java - 如何将 CR 和 LF 附加到 String.getBytes() 返回的数组

java - 使用 int 的位表示进行操作

java - 对 C++ 中 ptrdiff_t 的使用感到困惑

java - 在JAVA中执行Mysql事务

java - 找到给定集合的最长单词