PrintWriter问题偶数

时间:2014-10-31 20:45:25

标签: java loops printwriter

我在这里有一个问题:我有这个程序打印所有偶数0到1000但是在朋友做了一些更改后它只打印" 0"现在。我已经使用了一段时间,无法弄清楚它是否是一个循环问题或打印机问题。我从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 个答案:

答案 0 :(得分: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():
}