2014-10-31 39 views
0

我在這裏有一個問題:我有這個程序打印所有偶數從0到1000,但在朋友做了一些改變後,它現在只打印「0」。我已經使用了它一段時間,並不能確定它是一個循環問題或printwriter問題。我從printWriter方法中取出了循環,但仍然沒有任何結果。我究竟做錯了什麼?PrintWriter問題偶數

import java.io.FileNotFoundException; 
import java.io.File; 
import java.io.PrintWriter; 

public class NumberWriter { 


public static void main(String[] args) { 
    String fileName = "numbers.txt"; 





    try { 
     PrintWriter outputStream = new PrintWriter(fileName); 


     for(int i = 0; i <= 1000; i++){ 
      if (i%2==0){ 


     outputStream.println(i + ""); 
     outputStream.close(); 

     } 
     } 
    } 


    catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 



    } 
} 
    } 
+1

好像你剛剛關閉的OutputStream中的如果。 – 2014-10-31 20:49:27

+0

那是什麼'i +「」'在那裏? – 2014-10-31 20:58:31

回答

2

不要關閉您的PrintWriteroutputStream),或者你不會得到任何更多的輸出。而且你的代碼可以被優化以增加2並繞過偶數測試(這是可行的,因爲每個偶數都是2的倍數)。而Java現在已經The try-with-resources Statement,所以你不必記住關閉PrintWriter

try (PrintWriter outputStream = new PrintWriter(fileName)) { 
    for(int i = 0; i <= 1000; i += 2){ 
    outputStream.println(Integer.toString(i)); 
    } 
} catch (FileNotFoundException e) { 
    e.printStackTrace(): 
} 
+1

你當然*應該*關閉它,只是不*還*。 – 2014-10-31 20:59:03

+1

@DavidConrad +1糟糕。增加了「嘗試與資源」。 – 2014-10-31 21:02:39

+0

真棒,謝謝你們! – 2014-10-31 21:08:10