写入文件时如何压缩文件?

安德烈:

有人知道压缩您正在写入的流的方法吗?我试图避免将文件写入磁盘,并且想知道是否可以在将数据写入流时压缩数据。

这背后的用例是原始文件将非常大,我们希望避免将未压缩的整个文件写入磁盘。

拼写:

我认为您会对ZipOutputStream感兴趣您可以写入该流,然后将其写出到压缩文件中。

另外,请查看本教程以使用Java中的压缩(压缩)文件这是该教程的摘录,可能是一个有用的插图:

     BufferedInputStream origin = null;
     FileOutputStream dest = new 
       FileOutputStream("c:\\zip\\myfigs.zip");
     ZipOutputStream out = new ZipOutputStream(new 
       BufferedOutputStream(dest));
     //out.setMethod(ZipOutputStream.DEFLATED);
     byte data[] = new byte[BUFFER];
     // get a list of files from current directory
     File f = new File(".");
     String files[] = f.list();

     for (int i=0; i<files.length; i++) {
        System.out.println("Adding: "+files[i]);
        FileInputStream fi = new 
          FileInputStream(files[i]);
        origin = new 
          BufferedInputStream(fi, BUFFER);
        ZipEntry entry = new ZipEntry(files[i]);
        out.putNextEntry(entry);
        int count;
        while((count = origin.read(data, 0, 
          BUFFER)) != -1) {
           out.write(data, 0, count);
        }
        origin.close();
     }
     out.close();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章