資源簡介
一個用Java編寫的實現壓縮和解壓縮的間單程序。
代碼片段和文件信息
//用lz78算法制作一個簡單的壓縮軟件
import?javax.swing.*;
import?java.io.*;
public?class?LZ78
{
String?file=“test“;
int?value=1;
int?k=0;
int?i=0;
String?[]cd=new?String[23];//用一個數組來存放詞典
public?LZ78()throws?IOException
{
//向原文件中輸入數據
DataOutputStream?output=new?DataOutputStream(new?FileOutputStream(“test.txt“));
output.writeChar(‘D‘);
output.writeChar(‘A‘);
output.writeChar(‘D‘);
output.writeChar(‘?‘);
output.writeChar(‘D‘);
output.writeChar(‘A‘);
output.writeChar(‘D‘);
output.writeChar(‘A‘);
output.writeChar(‘?‘);
output.writeChar(‘D‘);
output.writeChar(‘A‘);
output.writeChar(‘D‘);
output.writeChar(‘D‘);
output.writeChar(‘Y‘);
output.writeChar(‘?‘);
output.writeChar(‘D‘);
output.writeChar(‘A‘);
output.writeChar(‘D‘);
output.writeChar(‘O‘);
????????output.close();
}
????public?void?encode(String?file1String?file2)throws?IOException//解壓縮
????{
DataInputStream?ip=new?DataInputStream(new?FileInputStream(file1+“.lz“));
DataOutputStream?op=new?DataOutputStream(new?FileOutputStream(file2+“.txt“));
char?c;
while(ip.available()!=0)
{
int?d=ip.readInt();
if(d==0)
{
c=ip.readChar();
op.writeChar(c);
cd[value++]=String.valueOf(c);
}
else
{
c=ip.readChar();
char?[]chars=cd[d].toCharArray();
for(int?j=0;j ????op.writeChar(chars[j]);
op.writeChar(c);
cd[value++]=cd[d]+String.valueOf(c);
}
}
ip.close();
op.c
- 上一篇:圖書管理系統jsp+mysql
- 下一篇:cglib所需要的所有jar包
評論
共有 條評論