java - 扫描仪使用循环从命令行读取文本文件,但循环不会中断
问题描述
所以我想从命令行使用 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'语句也从未到达。甚至似乎循环都没有返回到顶部。这是我的输出(该方法确实成功读取了我所有的文本文件)
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
我希望再运行一次,通过打印“找到空白区域”来表明程序已到达文件末尾。
所以它似乎成功地读取了行,但似乎无法中断。我的程序不会崩溃,如果有任何意义,它只会“挂起”。
解决方案
它没有到达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
推荐阅读
- grafana - 无法通过 CLI 使用导出的 json 导入 grafana 仪表板
- emgucv - 无法使用 EMGU CV windows 10 64 位捕获帧
- android - 如何将焦点设置在android网格视图中的最后一个元素上
- html - 网页抓取的美丽汤没有回报
- android - Android Studio 3:安装了最新的插件版本但运行时警告过时
- alexa - Alexa 技能未在 Amazon Alexa 应用程序中调用,但可在开发控制台中使用
- magento - 在管理员中添加库存状态列以管理产品网格
- ios - 将元数据添加到我的应用内购买 ios
- arrays - 将数组添加到已存储数组的哈希条目
- python - 如何在 PyTorch 中将 numpy 数组转换为 LongTensor 类型变量?