DeflaterOutputStream を使用したファイルの圧縮
このクラスは、「deflate」圧縮形式でデータを圧縮するための出力ストリーム フィルターを実装します。これは、GZIPOutputStream などの他のタイプの圧縮フィルターの基礎としても使用されます。 重要な方法:- データを読み取るために、入力ファイル「ファイル 1」を FileInputStream に渡します。
- 出力ファイル「file 2」を取得し、それを FileOutputStream に割り当てます。これは、データを「file2」に書き込むのに役立ちます。
- データを圧縮するために FileOutputStream を DeflaterOutputStream に割り当てます。
- 次に、FileInputStream からデータを読み取り、DeflaterOutputStream に書き込みます。データを圧縮して FileOutputStream に送信し、圧縮データを出力ファイルに保存します。
- 「file2」という名前のファイルには圧縮データが含まれているため、このファイルから元の解凍データを取得する必要があります。
- 圧縮ファイル「file2」を FileInputStream に割り当てます。これは、「file2」からデータを読み取るのに役立ちます。
- 出力ファイル「file3」を FileOutputStream に割り当てます。これは、非圧縮データを「file3」に書き込むのに役立ちます。
- ここで、InflaterInputStream から非圧縮データを読み取り、FileOutputStream に書き込みます。これにより、非圧縮データが「file3」に書き込まれます。
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.Deflater; import java.util.zip.DeflaterOutputStream; class zip { public static void main(String[] args) throws IOException { //Assign the original file : file to //FileInputStream for reading data FileInputStream fis=new FileInputStream('file1'); //Assign compressed file:file2 to FileOutputStream FileOutputStream fos=new FileOutputStream('file2'); //Assign FileOutputStream to DeflaterOutputStream DeflaterOutputStream dos=new DeflaterOutputStream(fos); //read data from FileInputStream and write it into DeflaterOutputStream int data; while ((data=fis.read())!=-1) { dos.write(data); } //close the file fis.close(); dos.close(); } }
InflaterInputStream を使用したファイルの解凍
このクラスは、「deflate」圧縮形式でデータを解凍するためのストリーム フィルターを実装します。これは、GZIPInputStream などの他の解凍フィルターの基礎としても使用されます。 重要な方法:import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.InflaterInputStream; //Uncompressing a file using an InflaterInputStream class unzip { public static void main(String[] args) throws IOException { //assign Input File : file2 to FileInputStream for reading data FileInputStream fis=new FileInputStream('file2'); //assign output file: file3 to FileOutputStream for reading the data FileOutputStream fos=new FileOutputStream('file3'); //assign inflaterInputStream to FileInputStream for uncompressing the data InflaterInputStream iis=new InflaterInputStream(fis); //read data from inflaterInputStream and write it into FileOutputStream int data; while((data=iis.read())!=-1) { fos.write(data); } //close the files fos.close(); iis.close(); } }
クイズの作成