#java #file-processing
#java #обработка файлов
Вопрос:
Я пытаюсь напечатать четные числа из 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 досье. В файле печатается только последний.
Комментарии:
1. Вы пробовали это со своей
...new Printstream...
строкой над циклом while?
Ответ №1:
Это связано с тем, что вы создаете экземпляр PrintStream
в каждом цикле вашего while
цикла, вы хотите создать экземпляр 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