压缩算法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压缩工具类
分享地址:http://scyanting.com/article/dogehgc.html