huffmanencode.java

来自「对文本信息进行哈夫曼加密」· Java 代码 · 共 46 行

JAVA
46
字号
package wlf;

/**
 * 对文本信息,实现哈夫曼加密
 */
import java.io.*;

public class HuffmanEncode{
	/**
	 * 主函数
	 * @param args
	 */
	public static void main(String args[])
	{
		//文本信息包含的元素列表
		final String sourceItem="Helo,nic tsyu!";
		char[] letters=sourceItem.toCharArray();
		//元素出现的频率数组
		int counts[]={1,4,2,3,1,1,1,1,3,1,1,1,1,1};
		HuffmanTree huf=new HuffmanTree();
		huf.generateTree(letters,counts);
		huf.generateCodes();
		try
		{
			ObjectOutputStream out=new ObjectOutputStream(
				new FileOutputStream("Tree.data"));
			out.writeObject(huf);
		}catch(IOException e)
		{
			e.printStackTrace();
		}
		//源信息,此处可改进为读取文本文件中的内容。
		String sourceInfo="Hello,nice to see you!";
		String codes=huf.encode(sourceInfo);
		System.out.println(codes);
		try{
			PrintWriter pw=new PrintWriter("Codes.data");
			pw.write(codes);
			pw.flush();
		}catch(IOException e)
		{
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?