扫描仪使用循环从命令行读取文本文件,但循环不会中断
Scanner reading a text file from command line using a loop, but the loop will not break
所以我想使用
从命令行读取 java 中的 .text 或 .data 文件
java name < filename.data
代码如下:
ArrayList<String> input = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
System.out.println("Reading line");
String line = scanner.nextLine().trim();
System.out.println("The line is: " + line);
if (line.equals("") || line.isEmpty()) {
System.out.println("Found blank area");
break;
}
System.out.println("Adding to arrayList");
input.add(line);
}
System.out.println("Read in was successful");
行 "system.out.println("Read in was successful"); 从未达到。似乎也从未达到用于在读取后中断循环的 'if' 语句。它甚至似乎都没有循环 returns 到顶部。这是我的输出(该方法成功读取了我所有的文本文件)
Reading line
The line is: car
Adding to arrayList
Reading line
The line is: mega
Adding to arrayList
Reading line
The line is: bed
Adding to arrayList
Reading line
The line is: stop
Adding to arrayList
Reading line
The line is: game
Adding to arrayList
Reading line
The line is: pots
Adding to arrayList
Reading line
The line is: arc
Adding to arrayList
我希望再有一个 运行,它表明程序已通过打印输出 "Found blank area" 到达文件末尾。
所以它似乎成功地读取了行,但似乎无法中断。我的程序没有崩溃,如果有任何意义的话,它只是 "hangs" 在那里。
它没有到达 if (line.equals("") || line.isEmpty())
代码,因为我认为空文件中没有空行,我尝试 运行 代码并获得了所需的输出,输入文件内容为
输出
Reading line
The line is: car
Adding to arrayList
Reading line
The line is: mega
Adding to arrayList
Reading line
The line is: bed
Adding to arrayList
Reading line
The line is: stop
Adding to arrayList
Reading line
The line is: game
Adding to arrayList
Reading line
The line is: pots
Adding to arrayList
Reading line
The line is:
Found blank area
Read in was successful
输入文件
car
mega
bed
stop
game
pots
arc
所以我想使用
从命令行读取 java 中的 .text 或 .data 文件java name < filename.data
代码如下:
ArrayList<String> input = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
System.out.println("Reading line");
String line = scanner.nextLine().trim();
System.out.println("The line is: " + line);
if (line.equals("") || line.isEmpty()) {
System.out.println("Found blank area");
break;
}
System.out.println("Adding to arrayList");
input.add(line);
}
System.out.println("Read in was successful");
行 "system.out.println("Read in was successful"); 从未达到。似乎也从未达到用于在读取后中断循环的 'if' 语句。它甚至似乎都没有循环 returns 到顶部。这是我的输出(该方法成功读取了我所有的文本文件)
Reading line
The line is: car
Adding to arrayList
Reading line
The line is: mega
Adding to arrayList
Reading line
The line is: bed
Adding to arrayList
Reading line
The line is: stop
Adding to arrayList
Reading line
The line is: game
Adding to arrayList
Reading line
The line is: pots
Adding to arrayList
Reading line
The line is: arc
Adding to arrayList
我希望再有一个 运行,它表明程序已通过打印输出 "Found blank area" 到达文件末尾。
所以它似乎成功地读取了行,但似乎无法中断。我的程序没有崩溃,如果有任何意义的话,它只是 "hangs" 在那里。
它没有到达 if (line.equals("") || line.isEmpty())
代码,因为我认为空文件中没有空行,我尝试 运行 代码并获得了所需的输出,输入文件内容为
输出
Reading line
The line is: car
Adding to arrayList
Reading line
The line is: mega
Adding to arrayList
Reading line
The line is: bed
Adding to arrayList
Reading line
The line is: stop
Adding to arrayList
Reading line
The line is: game
Adding to arrayList
Reading line
The line is: pots
Adding to arrayList
Reading line
The line is:
Found blank area
Read in was successful
输入文件
car
mega
bed
stop
game
pots
arc