2013-12-14 17 views
1
public void saveToTextFile(String outText) throws IOException 
    { 

     BufferedWriter out = new BufferedWriter(new FileWriter(outText)); 
     String[] keys=new String[words.size()]; 
     int[] values=new int[words.size()]; 
     int i=0; 

     for(String word : words.keySet()) 
     { 
      keys[i]=word; 
      values[i]=words.get(word); 
      i++; 
      if(i==words.size()) //Έχουμε διασχίσει όλο το HashMap 
      { 
       break; 
      } 
     } 

     bubbleSort(values,keys); 

     for(i=0;i<words.size();i++) 
     { 
      out.write(keys[i]); 
      out.write(","); 
      out.write(values[i]); 
      out.write("\n"); 
     } 

     out.close(); 
    } 

我有上述功能,當我打開文件時,它會創建它像: 你好,你,是,好,怎麼樣,謝謝,太,世界,以及前兩個逗號後的一些奇怪的符號。這就像out.write(values [i]);和out.write(「\ n」);不工作!我檢查了bubbleSort *之後的數組,並且它們都很好!問題appers,應以書面文件...BufferedWriter.write()方法不寫整數文件

這是我得到的,whick是正確的:

Word: hello Frequency: 2 
Word: you Frequency: 2 
Word: are Frequency: 1 
Word: fine Frequency: 1 
Word: how Frequency: 1 
Word: thanks Frequency: 1 
Word: too Frequency: 1 
Word: world Frequency: 1 
+1

1)沒有必要在標題中添加主標籤。 2)請不要忘記添加'?'提問!有些人在頁面中搜索'?'如果'問題'中不存在,則直接進入下一個(實際)問題。 –

回答

4

它究竟執行as documented

寫入單個字符。

參數:
c - int,指定一個字符寫入

我懷疑你想:

out.write(String.valueOf(values[i])); 

這將覆蓋Writer.write(int),這是slightly more clearly documented

寫入一個字符。要寫入的字符包含在給定整數值的16個低位中; 16位高位被忽略。

+0

我在netbeans上工作,如果我輸入out.write,它會顯示可能的參數列表。我是其中之一。但是,我不知道爲什麼它不起作用! 非常感謝你!它當然起作用了! :) – syfantid

+1

@ user2202007:我解釋了爲什麼它不起作用。該方法在那裏,它只是沒有做你想做的。如果方法不符合您的預期,您應該總是*閱讀方法的文檔,或者最好在使用文檔之前閱讀文檔。 –

+0

謝謝!下次我會記住它! ;) – syfantid

0

您必須編寫字符串。嘗試下面的任一項

  • out.write(「123」);
  • out.write(new Integer(123).toString());
  • out.write(String.valueOf(123));

在上面的例子中,假設123被寫入文件。