Java函数仅适用于一个文本文件

时间:2016-04-05 19:26:36

标签: java operating-system

我创建了一个函数,它使用链接列表中的节点将文本文件分配为8个字符的块。代码段(扫描程序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)

这可能是什么原因?

1 个答案:

答案 0 :(得分:1)

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