Javaでgzipを使用して特定のファイル名で圧縮する方法は何ですか?

Javaでは、ファイルを圧縮する際にGZIPOutputStreamクラスを使用し、圧縮後のファイル名を指定することができます。以下に示すのは、GZIPOutputStreamクラスを使用してこの機能を実現する方法を示したサンプルコードです。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;

public class GzipFileCompression {

    public static void main(String[] args) {
        String inputFileName = "input.txt";
        String outputFileName = "output.gz";

        try (FileInputStream fis = new FileInputStream(inputFileName);
             FileOutputStream fos = new FileOutputStream(outputFileName);
             GZIPOutputStream gzipOS = new GZIPOutputStream(fos)) {

            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = fis.read(buffer)) != -1) {
                gzipOS.write(buffer, 0, bytesRead);
            }

            System.out.println("File compressed successfully.");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

この例では、input.txt は圧縮するファイルの名前であり、output.gz は圧縮後のファイル名です。指定された出力ファイルにデータを書き込むために FileOutputStream オブジェクトを作成し、次に GZIPOutputStream オブジェクトを作成して圧縮を実現します。

input.txtとoutput.gzのファイル名を実際の操作したいファイル名に置き換えることを覚えておいてください。

bannerAds