这是我第一次从Java文件中进行扫描。我正在尝试从一个文本文件中读取整数列表,对其进行操作,然后将其读取到另一个文件中。初始文件如下所示:
1234
9876
2345
我正在使用while循环并使用hasNextInt进行读取(在运行程序并检查了初始文本文件之后,我确定值在那里),但是我将零输出到新文本文件,因此我假设hasNextInt ()返回false。可以肯定的是,我只是跳过了扫描,而是使用for循环直接对每个ArrayList元素进行了操作,并且输出完美地写入了新文件。这是我的代码:
try {
File inFile = new File("input.txt");
File outFile = new File("output.txt");
FileWriter inWriter = new FileWriter(inFile);
FileWriter outWriter = new FileWriter(outFile);
Scanner inReader = new Scanner(inFile);
numberArray.add(1234); //Adding numbers to an array that was previously initialized
numberArray.add(9876);
numberArray.add(2345);
System.out.println("The raw numbers are:");
for (int n : numberArray) {
inWriter.write(n + "\r\n");
System.out.println(n);
}
System.out.println("\nThe new numbers are:");
while (inReader.hasNextInt()) {
int newNumber = inReader.nextInt();
int checkDigit = (newNumber / 7);
int finalNumber = (newNumber % checkDigit);
outWriter.write("" + newNumber + finalNumber + "\r\n");
System.out.println("" + newNumber + finalNumber);
}
inWriter.close();
outWriter.close();
inReader.close();
} catch (FileNotFoundException fnfe) {
System.out.println("There was a problem with the inFile file");
} catch (IOException ioe) {
System.out.println("There was a problem opening the outFile file");
}
最佳答案
您必须先关闭inWriter,然后才能从文件中读取数字。
inWriter直到关闭文件后才将文本输出到文件,因此您的读者看不到任何内容,因为从技术上讲还没有任何内容。
关于java - 为什么hasNextInt()在这里返回false?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31278244/