⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file.java

📁 哈夫曼编码/解码
💻 JAVA
字号:
/*
 * File.java
 *
 * Created on 2007年7月3日, 下午9:51
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package datacompress;

/**
 *
 * @author Han
 */
import java.io.*;
class File{
   public static void main(String args[]) throws Exception{
       String s;
       int A[]=new int[127];
      // for(int m=0;m<127;m++){
       //	A[m]=0;
       //}
       FileInputStream fis=new FileInputStream("Huff.java");
       InputStreamReader isr=new InputStreamReader(fis);
       BufferedReader br=new BufferedReader(isr);
       while((s=br.readLine())!=null)
          for(int i=0;i<s.length();i++){
          	char a=s.charAt(i);
          	int j=(int)a;
            A[j]++;
          }
       int count=0;   //count the zero
       for(int n=0;n<127;n++){
       	System.out.print(n);
       	System.out.print(A[n]);
       	if(A[n]==0) count++;
       }
       	System.out.println();
       	System.out.println();
       	System.out.println();
       int num=127-count; //the number of all the characters
       	System.out.println(num);
       	System.out.println();
       	System.out.println();
       	System.out.println();
       int value[][]=new int[num][2];
       for(int n=0;n<127;n++){
       	int i=0;
       	if(A[n]!=0){
       		System.out.println(n);	
       	
       	  value[i][0]=A[n];
       	  value[i][1]=n;
       	 i++; 
       	}
       }
       for(int i=0;i<num;i++)
       for(int j=0;j<2;j++){
        System.out.print(value[i][j]);
        System.out.print("    ");}
       	System.out.println();
       	System.out.println();
       	System.out.println();
       for(int i=0;i<=num-2;i++){
       	int k=i;
       	for(int j=i+1;j<=num-1;j++){
       	  if(value[j][0]<value[k][0]){
       	  	k=j;
       	  }	
       	}
       	int m;
       	m=value[i][0];value[i][0]=value[k][0];value[k][0]=m;
       	m=value[i][1];value[i][1]=value[k][1];value[k][1]=m;
       }
       for(int i=0;i<num;i++)
       for(int j=0;j<2;j++)
       System.out.print(value[i][j]);
       br.close();
       isr.close();
       fis.close();
   }
}

⌨️ 快捷键说明

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