当前位置: 首页 > 知识库问答 >
问题:

扫描仪-线程"main"java.util.NoSuchElementException中的异常:未找到行

瞿文柏
2023-03-14

肯定有一条线,但我不明白为什么扫描仪看不到…

以下是文件的开头:

256
<Y 1874>
<A T. HARDY‡<T Madding Crowd(Peuœ‚978)”C i”P 51‡DESCRIPTION OF FMERÅAK -- AÄINCIºNT

下面是我获取它的代码:

File file = new File ("calgary/book1_enc");
Scanner first_line = new Scanner(file);
int size_st;
size_st = Integer.valueOf(first_line.nextLine());

但我得到了错误:

Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Unknown Source)
    at LZWDecoder.main(LZWDecoder.java:26)

book1_enc的文件是我的LZW编码算法的输出。当我将文件传递给我的解码器时,我希望解码器知道字典的大小,在这种情况下是256...感谢您的阅读...

共有2个答案

宰父嘉胜
2023-03-14

这意味着您的文件没有下一行。在调用nextLine之前,应始终选中hasNextLine()。您应该这样修改代码

if (first_line.hasNextLine()){
    size_st = Integer.valueOf(first_line.nextLine());
}

java.util.NoSuch元素异常由枚举的下一个元素方法引发,以指示枚举中没有更多元素。

鲜于德业
2023-03-14

问题出在输入文件的编码上。对扫描仪使用指定字符集的其他构造函数:

Scanner first_line = new Scanner(file, "UTF-8");

使用其他构造函数会导致使用默认字符集,该字符集通常无法正确读取 unicode 字符。

解决方法

BufferedReader br = new BufferedReader(new FileReader("book1_enc.dat"));
int sizeSt = Integer.parseInt(br.readLine());
 类似资料:
  • 问题内容: 我正在尝试从链接列表中删除特定节点。我试图调用我的方法removeNode,但是当我调用它来获取用户输入时,它给了我这个错误。任何有关如何解决此问题的建议将不胜感激! LinkedList类: fileIn类别: 问题答案: 问题是您要关闭( 关闭基础流)。一旦执行此操作,它将保持关闭状态,并且无法输入。您通常不希望使用标准输入来执行此操作: 另外,为了将来参考,您应该尝试创建更多的最

  • 问题内容: 我收到以下异常。 java.util.NoSuchElementException:找不到行 我在编写一个需要从文本文件读取的较大程序时遇到了此错误,因此决定进行测试。 而且我仍然得到例外。我在与名为stricts.txt的类相同的文件夹中有一个文本文件,其中包含文本。我究竟做错了什么? 问题答案: 新的File(“ restrictions.txt”)将在应用程序的“开始目录”中查找

  • 我刚开始我的大学java课程,在扫描器类中不断得到这个错误。 我不断得到的错误是:

  • 所以我有3个不同的类,每个都有一个扫描仪。在main方法中,我循环遍历这些类,并为每个类输入几次。问题是当我关闭扫描仪(scanner.close();)时,我只能迭代一次,执行的第一个类,然后我得到这个错误:线程“main”中的异常java.util.NoSuchElementException:找不到行。当我不关闭扫描仪时,一切都很好,但我不想有内存泄漏。如果发布代码可以帮助您更好地理解我的问

  • 问题内容: 每当我运行此命令时,该函数就可以正常使用。当我选择洞穴时,消息会每隔2秒弹出一次,然后当它越过该部分时,就会出现错误: 我已经尝试过和,并且在该方法中使用时,出现了很多错误。当我在方法中使用时,它不接受我的输入。 当我在该方法中使用时,它不接受我的字符串输入,而直接进入另一个游戏,但是布尔值返回并且它无限地发送垃圾邮件“ Which Cave …”。 我已经阅读了错误报告,以及类似问题

  • 每当我运行这个函数时,函数与.nextint()中的