使用java压缩时,文件格式/扩展名不会保留在gzip文件中

时间:2018-01-09 07:30:56

标签: java compression gzip

我尝试将文件压缩为gzip格式。 源文件的文件格式/扩展名不会保留在压缩的.gz文件中。

我使用以下java代码来压缩文件。

如果.gz

,我可以在toFile = test.csv.gz文件中获取文件格式

但如果toFile = test.gz

,则文件格式不可用

我担心的是我不想在gzip文件的名称中使用源文件格式。

代码:

public void gzipFile(String fromFile, String toFile) throws IOException {



    GZIPOutputStream out = null;
    BufferedInputStream in = null;


    try {
        // Open the input file
        in = new BufferedInputStream(new FileInputStream(fromFile));

        // Create the GZIP output stream
        out = new GZIPOutputStream(new BufferedOutputStream(new FileOutputStream(toFile)));

        // Transfer bytes from the input file to the GZIP output stream
        byte[] buffer = new byte[1024];
        int len;
        while ((len = in.read(buffer)) != -1) {
            out.write(buffer, 0, len);
        }
        //Complete the entry
        out.flush();
        in.close();


        File newFile = new File(toFile.replace(".log", ""));
        System.out.println(newFile);
        File file = new File(toFile);
        file.renameTo(newFile);
    } catch (IOException e) {
        // log and return false
        e.printStackTrace();
    } finally {
        try {
            if (in != null) {
                in.close();
            }
            if (out != null) {
                // Complete the GZIP file
                out.finish();
                out.close();
            }
        } catch (IOException ignore) {
        }
    }

}

0 个答案:

没有答案