ZIP壓縮IO涉及類(包括操作文件夾壓縮)
示例代碼
JAR壓縮類與ZIP是幾乎一模一樣對應(yīng)的分別為:JarEntry JarFile JarInputStream JarOutputStream
GZIP格式,只提供GZIPInputStream和GZIPOutputStream類,因為其作用是單純的壓縮與解壓,不維護文件結(jié)構(gòu)。多數(shù)用于基于流的數(shù)據(jù)傳送過程實現(xiàn)數(shù)據(jù)壓縮。用法就如Bufer Stream一樣,是stream之間的又一個過濾類,只是Buffer提供緩沖,而GZIP提供壓縮。
例如需要網(wǎng)絡(luò)傳送壓縮就可以這樣做:
客戶端:
Socket socket = new Socket(服務(wù)器地址字符串, 服務(wù)器端口);
BufferOutputStream out = new BufferOutPutStream(new GZIPOutputStream(socket.getOutputStream()));
然后就可以操作數(shù)據(jù)輸出了
服務(wù)器端:
ServerSocket sSocket = new ServerSocket(服務(wù)器端口);
Socket socket = sSocket.accept();
BufferInputStream in = new BufferInputStream(new GZIPInputStream(socket.getInputStream()));
然后就可以讀入數(shù)據(jù)了。
明顯網(wǎng)絡(luò)數(shù)據(jù)傳送就加了一個壓縮,性能就可以提高了。
ZipEntry標識zip文件中單個文件的入口,它也支持路徑加文件名,所以通過配置它,可以建立目錄層次的zip文件(見下例子)
ZipOutputStream,write數(shù)據(jù)到zip文件的對象
ZipInputStream,從zip文件中read數(shù)據(jù)的對象,其實基本上這個沒有作用
ZipFile,獲取zip文件里面單個文件入口,getInputStream()等信息的對象,初始化ZipFile zf = new ZipFile(zip壓縮文件的File對象);
Enumeration entries = =zf.entries()可以獲得所有的zip文件里面的文件入口。
原理就是:entry指定單個文件相對zip壓縮文件內(nèi)部根目錄的位置,Stream操作輸出輸入,ZipFile代表的就是整個zip文件

JAR壓縮類與ZIP是幾乎一模一樣對應(yīng)的分別為:JarEntry JarFile JarInputStream JarOutputStream
GZIP格式,只提供GZIPInputStream和GZIPOutputStream類,因為其作用是單純的壓縮與解壓,不維護文件結(jié)構(gòu)。多數(shù)用于基于流的數(shù)據(jù)傳送過程實現(xiàn)數(shù)據(jù)壓縮。用法就如Bufer Stream一樣,是stream之間的又一個過濾類,只是Buffer提供緩沖,而GZIP提供壓縮。
例如需要網(wǎng)絡(luò)傳送壓縮就可以這樣做:
客戶端:
Socket socket = new Socket(服務(wù)器地址字符串, 服務(wù)器端口);
BufferOutputStream out = new BufferOutPutStream(new GZIPOutputStream(socket.getOutputStream()));
然后就可以操作數(shù)據(jù)輸出了
服務(wù)器端:
ServerSocket sSocket = new ServerSocket(服務(wù)器端口);
Socket socket = sSocket.accept();
BufferInputStream in = new BufferInputStream(new GZIPInputStream(socket.getInputStream()));
然后就可以讀入數(shù)據(jù)了。
明顯網(wǎng)絡(luò)數(shù)據(jù)傳送就加了一個壓縮,性能就可以提高了。