999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java的源文件數據測試研究

2017-03-11 01:41:08趙景惠
網絡安全技術與應用 2017年5期
關鍵詞:利用

◆趙景惠

(北京交通大學經濟管理學院 北京 100044)

基于Java的源文件數據測試研究

◆趙景惠

(北京交通大學經濟管理學院 北京 100044)

本文在討論實現zip數據壓縮常用類后,針對JDK提供的ZIP包在壓縮中文文件時出現的亂碼問題,提出了修改ZIP包源代碼和利用Ant包兩個解決亂碼問題的方法,最后利用Ant包實現了一個壓縮中文文件夾的類,其壓縮時間和壓縮比介于winrar和winzip之間,該壓縮方法有一定的實用價值。

Java;Ant;winrar;winzip;ZIP算法;文件壓縮

0 引言

Java在文件壓縮和解壓方面 Java提供了兩種最常用的壓縮算法GZIP和ZIP。GZIP算法相對簡單且沒有ZIP算法使用范圍廣,下面主要討論ZIP算法。

1 zip數據壓縮常用類

Java 1.7實現了I/O數據流與網絡數據流的單一接口,因此數據的壓縮、網絡傳輸和解壓縮的實現比較容易。一個zip文件由多個entry組成,每個entry有一個唯一的名稱,entry的數據項存儲壓縮數據。實現 zip數據壓縮兩個主要 Java類是 ZipEntry和ZipOutputStream。

(1)類ZipEntry:

public ZipEntry(String name); name為指定的數據項名。(2)類ZipOutputStream:

ZipOutputStream實現了zip壓縮文件的寫輸出流,支持壓縮和非壓縮 entry。對于要加入壓縮檔的每一個文件,都必須調用putNextEntry(),并將其傳遞給一個ZipEntry對象。ZipEntry對象包含了一個功能全面的接口,使用它可以獲得和設置Zip文件內那個特定的 Entry(入口)上能夠接受的所有數據:名字、壓縮后和壓縮前的長度、日期、CRC校驗和、額外字段的數據、注釋、壓縮方法,以及它是否為一個目錄入口等[1]。

2 壓縮中文名稱的文件

在Java應用程序中,對文字的編碼是以unicode為基礎的,壓縮的文件名,也是以unicode來編碼的,然而,在現今市面上的大部分壓縮軟件,比如winzip、winrar等,不支持unicode的編碼方式,因而用Java軟件壓縮后的中文文件名顯示出來是亂碼。要解決在壓縮中文文件時出現的亂碼問題,可通過以下兩種方式解決。

2.1 修改ZIP包源代碼

對文件的壓縮是通過ZipOutputStream類來完成,通過修改這兩個類的編碼方式,可以對中文文件名進行處理[2]。

從JDK的src.zip取得ZipOutputStream.java源代碼(通常在JDK的安裝目錄下),另存為CNZipOutputStream.java。修改源代碼如下。

public CNZipOutputStream(OutputStream out,String encoding){

super(out,new Deflater(Deflater.DEFAULT_COMPRESSION,true));

usesDefaultDeflater=true;

this.encoding=encoding;

}

byte[] nameBytes=null;

try{

if(this.encoding.toUpperCase().equals(“UTF-8”))

nameBytes=getUTF8Bytes(e.name);

else

nameBytes= e.name.getBytes(this.encoding);

}

catch(Exception byteE){

nameBytes=getUTF8Bytes(e.name);

}

2.2 利用ant包實現myzip類

也可以利用開源的Apache項目提供的ant包來壓縮中文名稱的文件,下載URL地址為http://ant.apache.org/,下載ant源文件apache-ant-1.7.0-src.zip,解壓后在Ant的org包里有實現zip算法的全部java源文件,利用import org.apache.tools.zip.*命令導入這些類文件即可。Ant包提供的ZIP壓縮類解決了壓縮中文名稱文件時的亂碼問題。以下為用ant包實現的類myzip的過程,利用myzip類的類方法zipFile即可實現中文文件夾的壓縮[3]。

import org.apache.tools.zip.*;

import java.io.*;

public class myzip {

public static void zipFile(String inputFileName , String zipFileName) throws Exception {

File zipFileSrc=new File(inputFileName);

ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));

zip(out, zipFileSrc, "");

}

private void zip(ZipOutputStream out, File f, String base) throws Exception {

if (f.isDirectory()) {

File[] fl = f.listFiles();

for (int i = 0; i 〈 fl.length; i++) {zip(out, fl[i], base + fl[i].getName());}

}else {

out.putNextEntry(new ZipEntry(base));

FileInputStream fin = new FileInputStream(f);

while ((num=fin.read(buf))!=-1){out.write(buf,0,num);}

fin.close();

} } }

3 測試和結論

通過在微機上文件壓縮測試,得出本文利用Java編寫的壓縮程序myzip同winzip和winrar在壓縮時間和壓縮后尺寸的數據,通過比較發現myzip和winzip、winrar的壓縮比基本接近,但myzip的時間消耗多于winzip和winrar。綜合來看,myzip的性能接近winrar和winzip,在winrar和winzip程序代碼未開源的情況下它還是有一定的實用價值。

[1]汪曉平,俞俊,李功.精通Java網絡編程[M].北京:清華大學出版社,2010.

[2]袁海燕,王文濤.Java實用程序設計100例[M].北京:人民郵電出版社,2015.

[3]張軍麗.Java中文件壓縮的實現[J].池州師專學報,2005.

猜你喜歡
利用
利用min{a,b}的積分表示解決一類絕對值不等式
中等數學(2022年2期)2022-06-05 07:10:50
利用倒推破難點
如何利用基本不等式比較大小
利用一半進行移多補少
利用口訣算除法
利用數的分解來思考
Roommate is necessary when far away from home
利用
回收木再利用——Piet Hein Eek
工業設計(2016年5期)2016-05-04 04:00:33
低丘緩坡未利用地的開發利用探討
河北遙感(2015年4期)2015-07-18 11:05:06
主站蜘蛛池模板: 狠狠干综合| 亚洲第一中文字幕| 国产精品极品美女自在线网站| 欧美成人免费一区在线播放| 久草热视频在线| 性视频久久| 亚洲中文字幕23页在线| 国产网站免费观看| 亚洲黄色视频在线观看一区| 久久综合九色综合97婷婷| 亚洲天堂网在线视频| 久久精品无码专区免费| 色综合天天视频在线观看| 亚洲三级影院| 视频一区亚洲| 免费看美女毛片| 熟女日韩精品2区| 一级毛片视频免费| 妇女自拍偷自拍亚洲精品| 狠狠做深爱婷婷久久一区| 免费一级毛片在线播放傲雪网| 免费看a级毛片| 99在线观看国产| 免费jjzz在在线播放国产| 国产尤物视频网址导航| аv天堂最新中文在线| 亚洲成人精品久久| 国产精品无码AV中文| 91久久夜色精品国产网站| 日本尹人综合香蕉在线观看| 99精品这里只有精品高清视频| 六月婷婷精品视频在线观看| 亚洲综合色婷婷| 亚洲高清中文字幕| 日韩人妻无码制服丝袜视频| 久久精品嫩草研究院| 亚洲日韩久久综合中文字幕| 日韩久久精品无码aV| 国产午夜不卡| 亚洲国产综合精品一区| 香蕉综合在线视频91| 欧美精品高清| 91亚洲精选| 日韩第九页| 免费国产好深啊好涨好硬视频| 国产成人精品日本亚洲| 国产一级毛片高清完整视频版| 在线看AV天堂| 成人国产精品2021| 国产微拍一区二区三区四区| 在线观看av永久| 国产成人精品男人的天堂| 欧美精品亚洲精品日韩专| 中国特黄美女一级视频| 亚洲人成网7777777国产| 国产精品手机在线观看你懂的| 麻豆国产在线观看一区二区| 青青草国产精品久久久久| 国产精品香蕉| 欧美成人国产| 亚洲一级毛片免费观看| 国产在线观看成人91| 亚洲天堂首页| 日韩精品一区二区三区免费在线观看| 国产麻豆福利av在线播放| 国产杨幂丝袜av在线播放| 精品在线免费播放| 国产精品吹潮在线观看中文| 思思热精品在线8| 日韩无码视频专区| 精品视频一区二区三区在线播| 秋霞国产在线| 重口调教一区二区视频| 亚洲国产成人精品一二区| 日韩不卡高清视频| 乱人伦中文视频在线观看免费| 香蕉国产精品视频| 欧美激情视频一区二区三区免费| 亚洲a级毛片| 日本欧美成人免费| 国产乱论视频| 91成人免费观看|