java - 你能解释一下扫描仪的工作原理吗?它打印所有内容吗?
问题描述
我试图了解扫描仪的工作原理。因此,我绑定到扫描文本文档并仅遍历某些单词,但它不起作用,它只是打印了所有内容。所以,我用一个只打印数字的循环替换它,但它甚至从未打印它,它打印了文本文档中的所有单词,即使我没有为此编写打印语句。扫描仪会自动打印所有内容吗?为什么我的 for 循环也被跳过了?
Scanner read = new Scanner(new File("Test.txt"));
read.close();
for(int i = 0; i < 5; i++) {
System.out.println(i);
}
解决方案
请将您的代码修改为:
通用代码:
Scanner reader = new Scanner(new File("Test.txt"));
while (reader.hasNext()){
String str = reader.nextLine();
System.out.println(str);
}
reader.close();
对于读取整数:
Scanner reader = new Scanner(new File("Test.txt"));
while (reader.hasNext()){
int i = reader.nextInt();
System.out.println(i);
}
reader.close();
当 Scanner 与文本文件一起使用时,它的行为有点像带有集合的迭代器。hasNext 方法检测文件的结尾,因此可以使用一个简单的 while 循环来读取文件的数据。
推荐阅读
- python - 如果在文件末尾添加了数据,请测试 ZIP 文件?
- mysql - 在mysql中的FK之前创建索引
- python - python创建列表通过SQL查询
- python - 如何用 Python 中的第 95 和第 5 个百分位替换异常值?
- dask - 使用 dask.array.store 到 hdf5 文件时,Dask 分布式 LocalCluster 失败并显示“TypeError:无法腌制 _thread._local 对象”
- html - 具有多个列表项的元素比具有单个列表项的元素推得更高
- c# - Azure DevOps:未找到带有 WikiHttpClient 的 Wiki 页面
- typescript - 反转必需和可选属性
- jquery - 如何在 laravel 的 jquery 中调用 ajax
- laravel - 批量更新多列时出错