• 大小: 3KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: Java
  • 标签: lz78  

资源简介

一个用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

评论

共有 条评论

相关资源