2012-12-19 27 views
0

我有兩個要打印以分開文件的數組。這裏是我的代碼:在java中打印到多個輸出文件

try { 
     PrintStream out = new PrintStream(new FileOutputStream(
      "Edges.txt")); 
     for (i = 0; i < bcount; i++) { 
     out.println(b[i][0] + " " + b[i][1]); 
     } 
     out.close(); 

    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 



    } catch (Exception ex) { 
    ex.printStackTrace(); 
    } 

    try { 
     PrintStream out = new PrintStream(new FileOutputStream(
      "Nodes.txt")); 
     for (i = 0; i < bigbIter; i++) { 
     out.println(bigb[i]); 
     } 
     out.close(); 

    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 



    } catch (Exception ex) { 
    ex.printStackTrace(); 
    } 

如果我只用第一套的try/catch /捕獲的,它完美的作品。但是,當我使用它都不起作用,給我錯誤「非法開始類型...} catch」和「錯誤:類,接口,或預期的枚舉」。我究竟做錯了什麼?

+2

我建議你使用IDE的代碼格式,這將是明顯的,你有太多' }' –

+0

我建議你不要複製類似的代碼,而是寫一個將數組寫入文件 –

+0

+1的方法來使用IDE來格式化代碼。它會幫助你找到像這樣的常見錯誤。在切線上,如果允許您在此項目中使用外部庫,我將建議您查看[TeeOutputStream](http://commons.apache.org/io/apidocs/org/apache/commons/io/輸出/ TeeOutputStream.html)[Apache Commons IO](http://commons.apache.org/io/)。它使這樣的任務變得簡單。 – Perception

回答

5
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 



} catch (Exception ex) { 
ex.printStackTrace(); 
} 

你有額外的},它會拋出解析器,並給你很多錯誤。

+0

不錯,我不得不重新閱讀你的答案(和問題)幾次,以找到額外的'}'。愚蠢的大腦,無法看到眼前的東西。 – Scott

+0

啊,真是令人沮喪,就是這樣。謝謝! –

1

你應該寫一個方法來寫入文件。只需傳遞文件名稱和數據。你應該看到你有太多的右括號,讓你的IDE高亮括號。

本課只是不要複製/粘貼,然後編輯catch塊,當你想再次!

編輯:另外,在Java 7中你可以有多個捕獲在一個塊,這是更好地做到這一點:

catch (FileNotFoundException | IOException e) 
{ 
}