我在这里有一个问题:我有这个程序打印所有偶数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();
}
}
}
答案 0 :(得分:2)
请勿关闭PrintWriter
(outputStream
),否则您将无法获得更多输出。并且您的代码可以优化以增加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():
}