java gzip xml_Java GZIPInputStream与GZIPOutputStream的使用示例
Java Gzip是一個壓縮率非常高的類,它可以將Gzip文件通過GZIPInputStream類讀取過來解壓縮,也可以將字符串通過GZIPOutputStream類寫成Gzip文件,當然了,我們可以把字符串壓縮成byte[]數組之后網絡傳輸,這樣速度會比沒有Gzip壓縮的要快得多,請看之前的案例:Java GZIP壓縮與解壓縮字符串
下面我們將來學習如何使用?Java GZIPInputStream與GZIPOutputStream進行壓縮與解壓縮GZIP文件吧!package?com.journaldev.files;
import?java.io.FileInputStream;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.util.zip.GZIPInputStream;
import?java.util.zip.GZIPOutputStream;
public?class?GZIPExample?{
public?static?void?main(String[]?args)?{
//需要壓縮的文件
String?file?=?"/Users/pankaj/sitemap.xml";
//將要壓縮成gz結尾的文件
String?gzipFile?=?"/Users/pankaj/sitemap.xml.gz";
//gzip壓縮文件解壓后的文件
String?newFile?=?"/Users/pankaj/new_sitemap.xml";
compressGzipFile(file,?gzipFile);
decompressGzipFile(gzipFile,?newFile);
}
private?static?void?decompressGzipFile(String?gzipFile,?String?newFile)?{
try?{
FileInputStream?fis?=?new?FileInputStream(gzipFile);
GZIPInputStream?gis?=?new?GZIPInputStream(fis);
FileOutputStream?fos?=?new?FileOutputStream(newFile);
byte[]?buffer?=?new?byte[1024];
int?len;
while((len?=?gis.read(buffer))?!=?-1){
fos.write(buffer,?0,?len);
}
//close?resources
fos.close();
gis.close();
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
private?static?void?compressGzipFile(String?file,?String?gzipFile)?{
try?{
FileInputStream?fis?=?new?FileInputStream(file);
FileOutputStream?fos?=?new?FileOutputStream(gzipFile);
GZIPOutputStream?gzipOS?=?new?GZIPOutputStream(fos);
byte[]?buffer?=?new?byte[1024];
int?len;
while((len=fis.read(buffer))?!=?-1){
gzipOS.write(buffer,?0,?len);
}
//close?resources
gzipOS.close();
fos.close();
fis.close();
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
}
在解壓縮gzip文件的時候,如果它不是GZIP格式的文件,則會報“java.util.zip.ZipException: Not in GZIP format”錯誤,如下所示:java.util.zip.ZipException:?Not?in?GZIP?format
at?java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:164)
at?java.util.zip.GZIPInputStream.(GZIPInputStream.java:78)
at?java.util.zip.GZIPInputStream.(GZIPInputStream.java:90)
at?com.journaldev.files.GZIPExample.decompressGzipFile(GZIPExample.java:25)
at?com.journaldev.files.GZIPExample.main(GZIPExample.java:18)
來源網站:太平洋學習網,轉載請注明出處:http://www.tpyyes.com/a/java/647.html
總結
以上是生活随笔為你收集整理的java gzip xml_Java GZIPInputStream与GZIPOutputStream的使用示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java equal 不等于_java
- 下一篇: java中factory_JAVA工厂方