gpt4 book ai didi

java - 如果我的 .txt 文件为空,如何修复扫描仪错误?

转载 作者:行者123 更新时间:2023-12-01 11:33:36 24 4
gpt4 key购买 nike

我正在从文件中获取字符串并将它们放入链接列表中。当 .txt 文件中有数据时,程序可以正常工作。
但是,当 .txt 文件中没有数据时,它似乎会抛出错误...

    exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:838)
at java.util.Scanner.next(Scanner.java:1347)
at task.main.main(main.java:85)

if/else 语句可以解决这个问题吗?

这是我正在使用的代码,如果 .txt 文件有数据,该代码就可以工作。

    //read in task data and place task data in a LL
String contentComplete = new Scanner(new File("completeData.txt")).useDelimiter("\\Z").next();
LineNumberReader lnr4 = new LineNumberReader(new FileReader(new File("completeData.txt")));
lnr4.skip(Long.MAX_VALUE);
lnr4.close();
realSize = lnr4.getLineNumber();
sizeOfIn = ((lnr4.getLineNumber() + 1) / 4); //divide by two because every 4 lines is equal to one input
//-----TEST number of data entries
System.out.println("Number of data entries from progressData.txt: " + sizeOfIn);
//-----Number of lines
System.out.println("Number of lines from progressData: " + realSize);
//splits userData.txt input 2 parts
String[] completeContent = contentComplete.split("\n");
//loads taskData into a LL
//update: changed i < sizeOfIn to i < realSize and it appears to be loading correctly

for(int i = 0; i < realSize; i++) {
task tempTask = new task(completeContent[i], completeContent[i+1], completeContent[i+2], completeContent[i+3]);
completeLL.add(tempTask);
i = i + 3;

最佳答案

您没有共享所有代码,但考虑到错误消息,您似乎没有在请求下一个 token 之前检查扫描仪的输入中是否仍有一些 token

为此,您应该使用 scanner.hasNext() 方法:

hasNext() Returns true if this scanner has another token in its input.

所以做类似的事情

while (scanner.hasNext()) {
// Process here the input from the scanner
// for example String data = scanner.next();
}

也可能您不需要在循环中实现它,而只需使用 if 即可:

if (scanner.hasNext()) {
// Process here....
}

关于java - 如果我的 .txt 文件为空,如何修复扫描仪错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30225228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com