Java Compress Large File

2019-05-27 01:44发布

I'm working on an app that works with some very large files each are around 180mb and there are 3 of them. I would like to add an option to my app to back these files up by compressing them in a zip or a tar or something. What is the best option would be to compress them down as much as possible in Java? Tar? Zip? Gzip?

3条回答
ら.Afraid
2楼-- · 2019-05-27 01:54

Alright went with zip here is the method i used. I found it online and modded it to junk the path and then just raised the buffer a little got about 450mbs of data down to 100mbs so not to bad :) thanks for the help

public void zipper(String[] filenames, String zipfile){
        byte[] buf = new byte[2048];
        try {
            String outFilename = zipfile;
            ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outFilename));
            for (int i=0; i<filenames.length; i++) {
                FileInputStream in = new FileInputStream(filenames[i]);
                File file = new File(filenames[i]);
                out.putNextEntry(new ZipEntry(file.getName()));
                int len;
                while ((len = in.read(buf)) > 0) {
                    out.write(buf, 0, len);
                }
                out.closeEntry();
                in.close();
            }
            out.close();
        } catch (IOException e) {
        }

    }

Plus 1 to both of you :)

查看更多
欢心
3楼-- · 2019-05-27 02:05

You can do this programmatically using Apache Compress.

查看更多
▲ chillily
4楼-- · 2019-05-27 02:10

Look at the classes in the java.util.zip package.

查看更多
登录 后发表回答