我的目标是读取格式化字符串并将其写入文件。 我实际上使用PrintWriter类输出和Scanner输入。
代码:
PrintWriter out = null;
Scanner in = null;
File file = new File(System.getProperty("user.dir")+"/data/level1/grounds.txt");
try {
out = new PrintWriter(file);
} catch (FileNotFoundException e) { e.printStackTrace(); }
out.println("foo");
try {
in = new Scanner(file);
} catch (FileNotFoundException e) { e.printStackTrace(); }
System.out.println(in.nextLine());
in.close();
文件已创建,但是in.nextLine()会抛出 NoSuchElementException:找不到行。 执行后(由此异常终止)文件为空。
请留下有关如何正确操作的建议。
答案 0 :(得分:1)
完成所有书写操作后,应关闭输出打印机,使其反映在扫描仪中。
答案 1 :(得分:1)
这是因为out.println("foo");
在PrintWriter
但不在文件中写入,您需要flush()
才能在文件中包含内容,您也可以close()
(这将自动flush()
简单刷新
out.println("foo");
out.flush()
关闭以冲洗
out.println("foo");
out.close()
使用自动刷新PrintWriter
out = new PrintWriter(new FileOutputStream(file), true);