Я оптимизировал ваш код.
Во-первых, вы должны упомянуть каталог файла number.txt
, в моем случае он создается в пакете test
, поэтому я упомянул src/test/number.txt
.
Затем я присвоил null
значение классу PrintWriter
, чтобы позже использовать его внутри if
операторов.
Scanner input = new Scanner(file);
в этом случае вам не нужно использовать второй класс Scanner
, если вам не нужен ввод с консоли, это зависит от вас.
while
цикл проверяет, является ли ваш файл пустым или нет, если он пуст, int a
равен нулю, иначе int a
получает номер из файла. Остальная часть кода равна вашему коду.
import java.io.File;
import java.io.PrintWriter;
import java.util.Scanner;
public class Tester {
public static void main(String[] args) throws Exception {
Scanner reader = new Scanner(System.in);
File file = new File("src/test/number.txt");
PrintWriter output = null;
System.out.println("Enter a number: ");
int n = reader.nextInt();
//you do not need to use a second Scanner class if you do not need any input
Scanner input = new Scanner(file);
int a = 0;
//this is for reading a number of "number.txt" file
while (input.hasNext()) {
a = input.nextInt();
}
if (n > a) {
output = new PrintWriter(file);
output.println(n);
output.close();
} else if (file.length() == 0) {
output = new PrintWriter(file);
output.println(n);
output.close();
} else {
System.out.println("File doesn't exist");
}
}
}