2012-01-29 33 views
0

我似乎無法使堆棧的每個字符串元素都打印到新行。我希望能夠使用另一種一次讀取一行的方法從該文本文件中檢索數據。我已經完成了該方法。將堆棧中的每個元素打印到文本文件中的新行

public Save(Stack<String> names, String fileName) 
{ 
    try 
    { 
     File Test = new File("" + fileName + ".txt"); 
     FileWriter out = new FileWriter(Test); 

     while (names.empty() == false) 
     { 
      String output = names.pop(); 
      out.write(output); 
     } 
     out.close(); 
     VALID_SAVE = true; 
    } 
    catch (FileNotFoundException e) 
    { 
     e.printStackTrace(); 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
} 
+1

這似乎是一個構造函數,而不是一個方法... – 2012-01-29 22:13:27

+0

嗯,是的,你是對的。但這是類的全部功能。 – SNOLLYGOSTER 2012-01-29 22:21:54

+0

不夠公平......儘管作爲一般規則,在構造函數中做實際工作是一個壞主意。 – 2012-01-29 22:30:28

回答

1

每個out()後只需添加一個新行:

String output = names.pop(); 
out.write(output); 
out.write("\n"); 

並請:

while(!names.empty()) 

此外,由於FileNotFoundExceptionIOException一個子類,異常處理是相同的,第一catch條款是多餘的。

+0

我試過out.write(「\ n」);這是行不通的。但是,謝謝你的其他建議。我是一個新手:P – SNOLLYGOSTER 2012-01-29 22:27:42

+0

@ChrisNevoraski我剛剛嘗試過它,它正確地在'Stack'上的每個元素後打印新行。或者,也許我不明白這個問題? – 2012-01-29 22:39:03

+0

我用了一個BufferedReader,它工作的很好。 – SNOLLYGOSTER 2012-01-30 00:59:01

0

這是OS out.write的行分隔符indepdent使用系統屬性(System.getProperty(「line.separator」))

相關問題