Java 偶数打印问题

Java 偶数打印问题,java,loops,printwriter,Java,Loops,Printwriter,我这里有一个问题:我让这个程序打印所有偶数0到1000,但在一个朋友做了一些更改后,它现在只打印“0”。我已经使用它一段时间了,不知道它是循环问题还是打印问题。我从printWriter方法中取出了循环,但仍然一无所获。我到底做错了什么 import java.io.FileNotFoundException; import java.io.File; import java.io.PrintWriter; public class NumberWriter { public static

我这里有一个问题:我让这个程序打印所有偶数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();



     }
}
    }
import java.io.FileNotFoundException;
导入java.io.File;
导入java.io.PrintWriter;
公共类编号编写器{
公共静态void main(字符串[]args){
字符串fileName=“numbers.txt”;
试一试{
PrintWriter outputStream=新的PrintWriter(文件名);
对于(int i=0;i请不要关闭(
outputStream
),否则您将无法获得更多的输出。您的代码可以优化为增量
2
,并绕过偶数测试(这是有效的,因为每个偶数都是2的倍数)。Java现在已经关闭了,因此您不必记得关闭
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():
}
try(PrintWriter输出流=新的PrintWriter(文件名)){

对于(int i=0;i)您似乎刚刚关闭了if中的输出流。这是
i+”
在那里做什么?您当然应该关闭它,只是还没有关闭。@DavidConrad+1 Oops。添加了
尝试使用资源
。为什么不直接使用
println(i)
?它最终会调用
Integer.toString(i)