2011-01-23 137 views
0

好了,所以我有我的課寫一個數組到一個文件

import java.io.*; 
public class writingArray 
{ 
    public static void writeToFile(String fileName, String[] input) { 
     PrintWriter printWriter; 
     try {  
      printWriter = new PrintWriter(new FileOutputStream(fileName, true)); 
      int length = input.length;  
      int i; 
      for(i = 0; ++i < length; i++) { 
       printWriter.println(input[i]); 
      } 
      printWriter.close();  
     } 
     catch(IOException e) { 
      System.out.println(e.getMessage()); 
     } 
    } 
} 

的問題是我想寫一個數組到文件裏(約格式化,不太熟悉的網站抱歉)每個條目都在一個單獨的行上,我想從每次寫入開始擦除文件。有關該做什麼的建議?因爲我所做的一切都是寫入數組的最後一個條目,同時擦除所有以前的條目,但是我可以在最後一個條目下寫入最後一個條目。

謝謝^^

回答

2
for(i = 0; ++i < length; i++) { 

我不認爲你想增加我兩次。擺脫++我。

+0

同意。你不應該使用這個構造,因爲這不是正常的做法 –

2

我強烈建議您使用它已經解決了許多問題庫http://commons.apache.org/io/api-release/org/apache/commons/io/FileUtils.html。如果你改變你的數組列表,你可以使用:

public static void writeLines(File file, 
           Collection<?> lines) 
         throws IOException 

一行寫入每個 項目的的toString()值的集合到指定 文件行。將使用默認的VM 編碼和默認行結尾 。

圖書館的作者們想到了許多問題,大多數人並沒有諸如行結束,編碼,錯誤捕獲等等。它也可能儘可能有效地用於一般用途。

+0

希望我知道這一點,我一定會考慮使用這種方法。 –

0

for(i = 0; ++i < length; i++) {看起來不錯,應該是for(i = 0; i < length; i++) {

,或者甚至更好:for (String line : input) { }

此外,new FileOutputStream(fileName, true)不會清除文件,而追加到它。

0
import java.io.*; 

public class writingArray { 
    public static void writeToFile(String fileName, String[] input) { 
     PrintWriter printWriter = null; 
     try { 
      printWriter = new PrintWriter(new FileOutputStream(fileName)); 
      for (int i = 0; i < input.length; i++) { 
       printWriter.println(input[i]); 
      } 
     } catch (IOException e) { 
      System.out.println(e.getMessage()); 
     } finally { 
      if (printWriter != null) { 
       printWriter.close(); 
      } 
     } 
    } 

} 
相關問題