打印到文件

Printing to a file

我正在尝试将偶数从 input.txt 文件打印到 display.txt 输出文件。每当我将输出作为测试发送到输出控制台时,它都能完美运行。它显示偶数。每当我使用打印流并将其发送到文件时,它只会打印出最后一个偶数。

我研究过并问过我的教授,教授说他们不知道哪里出了问题。

 Scanner inputfile=new Scanner(new File("input.txt"));
    double sum=0.0;
    int count=0;

    while (inputfile.hasNext())
    {
        if(inputfile.hasNextInt()) 
        {
            int next=inputfile.nextInt();
           int even=(next%2);              
           if(even==0)
           {


           PrintStream output=new PrintStream(new File("display.txt"));
          output.println(next); 
          System.out.println(next); 
           count++;

           }


        }
        else
        {
            inputfile.next();
            continue;

        }

    }

    if(count>0) 
    {

     inputfile.close();
    }
    else
    {
    System.out.println("The file doesn't contain any integers. Exit 
     Program");
    }

display.txt 文件的预期输出都是偶数。文件中只打印最后一个。

这是因为您要在 while 循环的每个循环中实例化 PrintStream,您想在 之前实例化 PrintStream output = new PrintStream(new File("display.txt")); 开始你的 while 循环。

例如:

// More code

PrintStream output = new PrintStream(new File("display.txt"));
while (inputfile.hasNext())
{
    if (inputfile.hasNextInt())
    {
        int next = inputfile.nextInt();
        int even = (next % 2);
        if (even == 0)
        {
            output.println(next);
            System.out.println(next);
            count++;
        }
    }
    else
    {
        inputfile.next();
        continue;
    }
}

// More code