壓縮算法java代碼 java壓縮工具類

LZSS壓縮算法的java代碼

可以參考一下這個代碼:

公司主營業務:成都網站建設、成都網站設計、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。成都創新互聯是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創新互聯推出渝北免費做網站回饋大家。

import java.io.*;??

public class pack??

{??

public final static byte F_PACK_MAGIC[]={ 0x73,0x6C,0x68,0x21};??

/* magic number for packed files */??

public final static byte F_NOPACK_MAGIC[]= { 0x73, 0x6C, 0x68, 0x2E};??

/* magic number for autodetect */??

private static void usage()??

{??

System.out.print("\nFile compression utility for Allegro 3.12");??

System.out.print("\nBy Shawn Hargreaves, Aug 1999. Java version by Radim Kolar, Dec 1999\n\n");??

System.out.print("Usage: 'pack in out' to pack a file\n");??

System.out.print("?????? 'pack u in out' to unpack a file\n");??

System.exit(1);??

}??

public static void main(String argv[]) throws IOException??

{??

String t="";??

String f1="",f2="";??

InputStream in;??

OutputStream out;??

long s1,s2;??

boolean pack=true;??

if (argv.length==2) {??

f1 = argv[0];??

f2 = argv[1];??

t = "Pack";??

}??

else if ((argv.length==3) (argv[0].length()==1) ??

((argv[0].charAt(0)=='u') || (argv[0].charAt(0)=='U'))) {??

f1 = argv[1];??

f2 = argv[2];??

t = "Unpack";??

pack=false;??

}??

else??

usage();??

if (f1.equals(f2))??

{??

System.out.println("\nError: Files must be different.");??

System.exit(1);??

}??

in = null;??

try??

{??

in? = new FileInputStream(f1);??

}??

catch ( IOException i)??

{??

System.out.println("\nError: "+f1+" - Can't open.");??

System.exit(1);??

}??

s1 = new File(f1).length();??

/* handle magic */??

if(!pack)?????????? {??

byte magic[]=new byte[4];??

in.read(magic);??

int bad=0;??

for(int i=2;i=0;i--)??

if(magic[i]!=F_PACK_MAGIC[i])???

bad=1;??

if(bad==0)??

if(magic[3]!=F_PACK_MAGIC[3])??

if(magic[3]==F_NOPACK_MAGIC[3]) bad=2;??

else???????????????????????? bad=1;??

if(bad==1)??

{??

System.out.println("\nError: "+f1+" - Not a packed file. (No magic)");??

System.exit(1);??

}??

if(bad==0) in? = new LZSSInputStream(in);??

}??

out = new FileOutputStream(f2);??

if(pack)???

{??

out.write(F_PACK_MAGIC);??

out = new LZSSOutputStream(out);??

}??

System.out.println(t+"ing "+f1+" into "+f2+"...");??

byte b[]=new byte[512];??

int i;??

while ( (i=in.read(b))!=-1) {??

out.write(b,0,i);??

}??

in.close();??

out.close();??

if (s1 0) {??

s2 = new File(f2).length();??

System.out.println("\nInput size: "+s1+"\nOutput size: "+s2+"\n"+(s2*100+(s11))/s1+"%");??

}??

return;??

}??

}

求助:用java實現哈夫曼編碼壓縮與解壓縮算法。

你好,由于內容比較多,先概述一下先。如圖所示,為我寫的一個壓縮軟件,原理是利用哈弗曼算法實現的。我將資料整理好稍后就發到你郵箱,但在這里簡要說明一下代碼。

請看我的空間

中的文章共5篇(太長了)

1.HuffmanTextEncoder類完成壓縮功能,可直接運行,壓縮測試用文本文件。

2.HuffmanTextDecoder類完成解壓縮功能,可直接運行,解壓縮?壓縮后的文本文件。

3.BitReader,工具類,實現對BufferedInputStream的按位讀取。

4.BitWriter,工具類,實現按位寫入的功能。該類來自網絡。

5.MinHeapT?,模板工具類,實現了一個最小堆。生成Huffman樹時使用。

用java如何實現壓縮字符串?

package javase1.day02;\x0d\x0a /**\x0d\x0a * 1)一種字符串壓縮算法\x0d\x0a * str ="aaaabbccccddeaaa"\x0d\x0a * 壓縮為:"4a2b4c2d1e3a"\x0d\x0a * 原理實現:\x0d\x0a * str = "aaaabbccccddeaaa"\x0d\x0a * \x0d\x0a * c = str.charAt(i)//c是每個字符\x0d\x0a * 1) 初始化\x0d\x0a * StringBuilder buf = new StringBuilder();\x0d\x0a * int count = 0;代表相同的字符個數\x0d\x0a * char ch = str.charAt(0);代表正在統計的相同字符'a' \x0d\x0a * 2) 從i=1開始迭代每個字符\x0d\x0a * c = str.charAt(i);//c是每個當前字符\x0d\x0a * 3) 檢查當前字符c與被統計ch是否一致\x0d\x0a * 如果一致 count++\x0d\x0a * 否則(不一致)\x0d\x0a * 向緩沖區buf增加count+ch\x0d\x0a * count=0,ch=c;\x0d\x0a * 3)沒有下個字符就結束\x0d\x0a * 4)還有字符串嗎?回到2)\x0d\x0a * \x0d\x0a * 2)實現還原算法\x0d\x0a * str = "4a2b4c2d1e3a";\x0d\x0a * i\x0d\x0a */\x0d\x0apublic class Demo5 {\x0d\x0a public static void main(String[] args) {\x0d\x0a String s = comp("aaaawwwwe");\x0d\x0a System.out.println(s);\x0d\x0a// System.out.println(decomp(s));\x0d\x0a \x0d\x0a }\x0d\x0a public static String comp(String str){\x0d\x0a int i = 1;\x0d\x0a StringBuilder buf = new StringBuilder();\x0d\x0a int count = 1;\x0d\x0a char ch = str.charAt(0);\x0d\x0a for(;;){\x0d\x0a char c = i==str.length() ? '\10':str.charAt(i);\x0d\x0a if(c==ch){\x0d\x0a count++;\x0d\x0a }else{\x0d\x0a if(count == 1)\x0d\x0a buf.append(ch);\x0d\x0a else \x0d\x0a buf.append(count).append(ch);\x0d\x0a count=1;\x0d\x0a ch = c;\x0d\x0a } \x0d\x0a i++;\x0d\x0a if(i==str.length()+1){\x0d\x0a break;\x0d\x0a } \x0d\x0a }\x0d\x0a return buf.toString();\x0d\x0a \x0d\x0a }\x0d\x0a}

如何使用JAVA代碼壓縮PDF文件

用java代碼壓縮應用到程序了,代碼一般是比較復雜的,對pdf文件的mate標簽優化,這類標簽包括三類,pdf文件不是網頁就是個文件,何況我們可以用pdf壓縮工具壓縮,下面有個解決方法,樓主可以做參照。

1:點擊打開工具,打開主頁面上有三個功能進行選擇,我們選擇pdf文件壓縮。

2:這這個頁面中我們選擇pdf文件在這里打開,點擊“添加文件”按鈕將文件添加進來。

3:然后在頁面中點擊“開始壓縮”就可以開始壓縮文件了。

4:壓縮完成的文件頁面會顯示已經完成。

當前文章:壓縮算法java代碼 java壓縮工具類
URL分享:http://m.kartarina.com/article12/dogehgc.html

成都網站建設公司_創新互聯,為您提供手機網站建設全網營銷推廣網站維護搜索引擎優化動態網站小程序開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都seo排名網站優化
主站蜘蛛池模板: 无码人妻丝袜在线视频| 亚洲综合无码一区二区三区| JAVA性无码HD中文| 久久久久亚洲av无码专区导航| 亚洲成A∨人片在线观看无码| 亚洲AV无码一区二区大桥未久| 亚洲AV永久青草无码精品| 无码人妻aⅴ一区二区三区| 亚洲AV无码国产精品永久一区| 亚洲真人无码永久在线观看| 亚洲无码视频在线| 毛片亚洲AV无码精品国产午夜 | 国产亚洲精品无码专区| 亚洲一本到无码av中文字幕| 亚洲午夜无码片在线观看影院猛 | 亚洲精品无码成人| 久久亚洲精品无码播放| 无码av中文一区二区三区桃花岛| 亚洲中文字幕无码一区| 亚洲欧洲精品无码AV| 好爽毛片一区二区三区四无码三飞 | 无码av免费一区二区三区试看| 亚洲中文字幕无码一区二区三区 | 国产拍拍拍无码视频免费| 亚洲AV无码国产剧情| 亚洲av永久无码嘿嘿嘿| 亚洲成A人片在线观看无码不卡 | 蜜桃臀无码内射一区二区三区| 久久精品无码av| 国产精品无码aⅴ嫩草| 亚洲国产av高清无码| 亚洲色av性色在线观无码| 久久精品无码专区免费东京热| 亚洲AV永久无码精品成人| 亚洲国产AV无码专区亚洲AV| 亚洲成AV人在线观看天堂无码| 国产成人午夜无码电影在线观看 | 午夜爽喷水无码成人18禁三级 | 亚洲精品无码久久久久APP | 国产成人无码a区在线视频| 精品无码人妻久久久久久|