【发布时间】: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