2011-05-13 27 views
0

我想將一個長的字符串壓縮成一個文件並檢索它。如何將長字符串壓縮成文件並檢索它?

以下代碼不起作用。它檢索的是亂碼。

public static void main(String args[]) { 

    try { 

     // Creating base for data 
     StringBuilder sbb = new StringBuilder(); 
     for (int i=0;i<1000;i++) 
      sbb.append("ùertyty!|").append(Integer.toString(i)); 

     File FileAll = new File(".\\All.data"); 
     FileAll.createNewFile(); 

     // Zipping into file 
     DeflaterOutputStream g = new DeflaterOutputStream(
       new FileOutputStream(FileAll)); 

     OutputStreamWriter osw = new OutputStreamWriter(g); 

     String base = sbb.toString(); 
     osw.write(base); 
     osw.close(); 

     FileInputStream ALL_FIS = new FileInputStream(FileAll); 

     // Re-reading from file 
     DeflaterInputStream dis = new DeflaterInputStream(ALL_FIS); 
     InputStreamReader isr = new InputStreamReader(dis); 

     StringBuilder sb = new StringBuilder(); 
     char[] c = new char[1000]; 

     int count = isr.read(c); 

     while (count != -1) { 
      sb.append(c, 0, count); 
      count = isr.read(c); 
     } 

     isr.close(); 

     String retr = sb.toString(); 
     System.out.println("Are equal: " + retr.equals(base)); 
     System.out.println("Base: " + base); 
     System.out.println("Retr: " + retr); 

    } catch (IOException e) { 

     System.err.println(e.toString()); 

    } 

} 

我在做什麼錯?

P.S .:看起來像DeflaterInputStream沒有完成它的工作,並返回文件的內容。

回答

相關問題