2012-12-20 118 views
1

我有一個秒錶的GUI,它有一個開始按鈕,一個停止按鈕,還有一個「分割」按鈕和一個保存分割按鈕。秒錶記錄拆分,我希望能夠將它們寫入到一個文件,但我有一個錯誤有:無法寫入文件

FileWriter splitsWriter= new FileWriter("a.txt"); 
for(int i=0;i<theSplits.size();i++){ 
    splitsWriter.write(theSplits.get(i)); 
} 

它說Unhandled exception type IOException但我認爲一個作家創建文件,如果它不存在,那麼爲什麼這個例外應該是一個問題嗎?我只是困惑..

+3

您應該添加一個catch塊並獲取IOException的詳細信息。也許它是「訪問被拒絕」或其他這樣的錯誤。 – pstrjds

+0

嗯,我只是不明白爲什麼這是一個編譯器錯誤,我之前沒有使用過FileReader/FileWriter,但是我在一個星期前使用了它,並且沒有這個問題。 – user1918163

+0

如果您沒有catch塊,您將收到編譯錯誤。我以爲你得到了一個未被處理的IOException被程序拋出。除非有捕獲處理程序,否則無法編譯。見Alex的答案。 – pstrjds

回答

1

就像pstrjds已經表示,你必須添加一個try/catch塊。你的代碼應該是這樣的:

try { 
    FileWriter splitsWriter= new FileWriter("a.txt"); 
    for(int i=0;i<theSplits.size();i++){ 
     splitsWriter.write(theSplits.get(i)); 
    } 
} catch (IOException e) { 
    // Do something to handle the exception 
} 

這應該編譯。

+0

編譯並運行沒有錯誤,創建文本文件,但實際上並沒有寫入,但我想我可以弄清楚。 編輯:woops忘了關閉作家,現在工作正常。謝謝您的幫助! – user1918163

+0

不要忘記關閉流。所以在你的(...){}之後,你應該把splitsWriter.close(); – Alex