好吧,所以我需要从不固定大小的文件中随机抓取一些字符串。因此,为此,我首先使用简单的 while 循环来计算文件中的行数。之后,我只需将该值提供给随机对象并将我需要的十个值存储到数组中:
int[] select = new int[10];
但是我在使用这段代码时遇到了问题。
String[] value = new String[10];
for (sel = 0; sel <= 9; sel++){
int w = select[sel];
Scanner input = new Scanner(file.txt);
for (int q = 0; q <= w; q++){
String bank = input.nextLine();
input.nextLine();
value[sel] = bank;
}
代码可以工作,但似乎如果代码正在寻找的值太高,(编辑:已确认超过 60)我会得到异常:
java.util.NoSuchElementException:未找到行
相关文件超过 100 行,那么值 75 会如何导致此错误?
最佳答案
每次迭代都会跳过 1 行并读取下一行,这意味着每次都会向下移动 2 行。
String bank = input.nextLine();
input.nextLine();
所以在 60 处,它实际上是在尝试读取第 120 行。
相反,只需执行以下操作:
for (int q = 0; q <= w; q++){
String bank = input.nextLine();
//other codes here..
}
为什么你用另一个循环读取完全相同的文件 10 次也是值得怀疑的。
关于java - 从外部文件中提取值时获取 "No line found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48954789/