【发布时间】:2020-09-20 00:46:16
【问题描述】:
我正在尝试将大文本文件写入二进制文件,但二进制文件与我的文本文件大小相同。我认为写入二进制文件会压缩它?写入二进制文件是否更有效?我怎样才能最大限度地减少我的文本文件的存储以供使用?
ArrayList<String> strArr = new ArrayList<String>();
File f = new File("words.txt");
BufferedInputStream in = new BufferedInputStream(new FileInputStream(f));
DataOutputStream out = new DataOutputStream (
new BufferedOutputStream(
new FileOutputStream("word.ser")
));
byte[] buffer = new byte[8192]; // or more, or even less, anything > 0
int count;
while ((count = in.read(buffer)) > 0) {
out.write(buffer, 0, count);
}
in.close();
out.close();
/*ObjectOutputStream oos = new ObjectOutputStream(
new BufferedOutputStream(
new FileOutputStream("words.ser")
)); */
System.out.println(f.length());
File file = new File("words.ser");
System.out.println(file.length());
【问题讨论】:
-
为什么将字节写入文件会压缩它?仅当有代码进行压缩时才会发生压缩。你没有任何这样的代码。 --- 此外,您正在将文本文件作为二进制文件读取,因此您只是在制作文件的二进制副本。
-
所有信息都是二进制的。所指的“文本”只是对如何组织内部位以反映可读字符的描述。如果您尝试打印一个可执行文件,其中一些将被解释为文本,即使它们可能不是。
-
文件变小与压缩无关,压缩是指算法使用优化技术来保存数据,有关压缩的更多信息,请阅读本文:techopedia.com/definition/892/…。
-
@RIVERMAN2010 如果您将字母表写入文本文件并查看其大小,它将为 26。我从未听说过 eof 字符用于此目的。通常,文件的结尾由驱动程序在文件属性表条目或不同文件系统中的其他等效项所描述的结尾时确定。
-
您的标题说“文本”文件大于“二进制”文件;问题的主体说它们的大小相同。混乱?
标签: java text-files binaryfiles fileoutputstream