【问题标题】:Java function only works with one text fileJava 函数仅适用于一个文本文件
【发布时间】:2016-04-05 19:26:36
【问题描述】:

我创建了一个函数,它使用链表中的节点将文本文件分配到 8 个字符的块中。代码sn-p(Scanner b & LinkedList列表已经初始化):

b = new Scanner(new BufferedReader(new FileReader("files\\A.txt")));
b.useDelimiter("");
String A = null;

while (b.hasNext()) {
    A = null;
    A = b.next();
    for (int i = 0; i < 7; i++) {
        A = A.concat(b.next());
    }
    list.Insert(A);

文件 A.txt 内容如下:

You can do anything, but not everything.

此函数适用于我的文本文件 A 并创建 5 个节点(总共 40 个字符),但如果我要在代码中替换它们,它不适用于 B.txt 或 C.txt。

文件 B.txt 内容如下:

You must be the change you wish to see in the world.

文件 C.txt 内容如下:

Always forgive your enemies; nothing annoys them so much.

每当我替换 B.txt 或 C.txt 时,我都会收到以下错误消息:

Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at Main.CreateBlocks(Main.java:82)
    at Main.main(Main.java:64)

这可能是什么原因?

【问题讨论】:

  • 因为您尝试读取的字符比文件中的字符多。 B.txt 有 52 个字符,并且您的算法仅在文件中的字符数是 8 倍数(例如 40)时才有效,就像在 A.txt 中一样。你必须控制它。
  • 另外,您可以删除此行“A = null;”。如果在它之后执行“A = b.next();”,它什么也不做
  • @RubioRic 谢谢!如果我得到了答案,我该如何结束这个问题?
  • 不客气。我已发布评论作为答案。你可以接受。

标签: java operating-system


【解决方案1】:

因为您尝试读取的字符比文件中的字符多。 B.txt 有 52 个字符,并且您的算法仅在文件中的字符数是 8 倍数(例如 40)时才有效,就像在 A.txt 中一样。你必须控制它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多