更新時間:2022-06-06 10:06:53 來源:動力節(jié)點 瀏覽1676次
Java 的 DeflaterOutputStream 類用于壓縮給定數(shù)據(jù)并將其流式傳輸?shù)侥康牡亍?/p>
此類的 write() 方法接受數(shù)據(jù)(整數(shù)和字節(jié)格式),對其進行壓縮并將其寫入當前 DeflaterOutputStream 對象的目的地。使用此方法壓縮文件 &Minus;
通過將要壓縮的文件的路徑以字符串格式作為參數(shù)傳遞給其構(gòu)造函數(shù),創(chuàng)建一個FileInputStream對象。
通過將輸出文件的路徑以字符串格式作為參數(shù)傳遞給其構(gòu)造函數(shù),創(chuàng)建一個FileOutputStream對象。
通過將上面創(chuàng)建的FileOutputStream對象作為參數(shù)傳遞給它的構(gòu)造函數(shù),創(chuàng)建一個DeflaterOutputStream對象。
然后,讀取輸入文件的內(nèi)容并使用 DeflaterOutputStream 類的 write() 方法進行寫入。
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.DeflaterOutputStream;
public class CompressingFiles {
public static void main(String args[]) throws IOException {
//Instantiating the FileInputStream
String inputPath = "D:\\ExampleDirectory\\logo.jpg";
FileInputStream inputStream = new FileInputStream(inputPath);
//Instantiating the FileOutputStream
String outputPath = "D:\\ExampleDirectory\\compressedLogo.txt";
FileOutputStream outputStream = new FileOutputStream(outputPath);
//Instantiating the DeflaterOutputStream
DeflaterOutputStream compresser = new DeflaterOutputStream(outputStream);
int contents;
while ((contents=inputStream.read())!=-1){
compresser.write(contents);
}
compresser.close();
System.out.println("File compressed.......");
}
}
輸出
File compressed.......