【发布时间】:2015-07-30 22:26:04
【问题描述】:
我正在尝试从文本文件中读取,但每当程序进入我的 while 循环时,它就会跳过它。我使用了一个之前的示例,我必须检查我是否正确执行了此操作,但这次似乎无法正常工作。
编辑:澄清一下,下面带有“b++”的while被跳过了。
编辑 2:更新代码。
public static void main(String[] args) throws FileNotFoundException {
ToDoItem td = new ToDoItem();
ToDoList tl = new ToDoList();
File file = new File("ToDoItems.txt");
Scanner ReadFile = new Scanner(file);
Scanner keyboard = new Scanner(System.in);
ArrayList<String> list = new ArrayList<>();
String inputline;
System.out.println("Welcome to the list maker!" + "\n" + "Please start typing.");
try (PrintWriter fout = new PrintWriter(new File("ToDoItems.txt"))) {
do {
System.out.println("add to the list? [y/n]");
inputline = keyboard.nextLine();
if ("y".equals(inputline)) {
fout.print(td.getDescription() + "\n");
} else {
System.out.println("Here is the list so far:");
while (ReadFile.hasNext()) {
String listString = ReadFile.nextLine();
list.add(listString);
}
}
} while ("y".equals(inputline));
} catch (FileNotFoundException e) {
System.err.println(e.getMessage());
}
System.out.println(list);
}
理想情况下,我希望它在每次通过 while 循环时打印数组的一部分。但它最终会跳过它。 我检查了文本文件本身,它确实有我想要打印到它的信息。然而由于某种原因,扫描仪无法正确读取它。
【问题讨论】:
-
哪个
while被跳过了? -
你确定它被跳过了吗?我猜这行:
stringArray[b] = ReadFile.nextLine();会抛出 ArrayIndexOutOfBoundsException。 -
第二个,带有“b++”的那个。我知道它被跳过了,因为我试图在它下面打印一个简单的“你能看到我吗”消息,但它从未显示出来。越界异常是我不知道该怎么做的另一个问题。但我试图让错误首先弹出,看看我是否能弄清楚。
-
String[] stringArray = new String[b];数组的大小为 0,这是 @aryn.galadar 得到的。将其设置为b以外的其他值,因为b为 0。
标签: java arrays file text text-files