首页 > 解决方案 > 为什么我的文本文件比我的二进制文件大?

问题描述

我正在尝试将大文本文件写入二进制文件,但二进制文件与我的文本文件大小相同。我认为写入二进制文件会压缩它?写入二进制文件是否更有效?如何最小化我的文本文件的存储以供使用?

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());

标签: javatext-filesbinaryfilesfileoutputstream

解决方案


要压缩文件,您可以例如gzip它。

在 Java 中,您可以这样做:

Path inFile = Paths.get("words.txt");
Path outFile = Paths.get("words.txt.gz");
try (OutputStream out = new GZIPOutputStream(Files.newOutputStream(outFile))) {
    Files.copy(inFile, out);
}

推荐阅读