将文本附加到文件并将其内容同时打印到控制台?
Append text to file and print it's contents to console simultaneously?
我已经为此花费了一个多小时,但我无法在 .txt 文件中显示任何文本。我做错了什么?
import java.util.*;
import java.io.*;
public class writer {
public static void main(String[] args) {
try {
File txt = new File("myTextFile.txt");
FileWriter fw = null;
fw = new FileWriter(txt);
BufferedWriter edit = null;
edit = new BufferedWriter(fw);
String s = "more text", line = null;
edit.write(s);
Scanner sc = new Scanner(txt);
while (sc.hasNextLine()) {
String i = sc.nextLine();
System.out.println(i);
}
sc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
编辑:添加了一个 .write,但它仍然不起作用
您永远不会关闭 BufferedWriter
实例,也永远不会刷新它。因此,您永远不会更改要有效写入物理文件的流缓冲区。
实际上,您从写入之前使用的同一来源读取文件。因此,在使用 Scanner
:
读取内容之前,您必须显式刷新 BufferedWriter
的缓冲区
BufferedWriter edit = new BufferedWriter(fw);
String s = "more text", line = null;
edit.write(s);
edit.flush(); // modification here
Scanner sc = new Scanner(txt);
我已经为此花费了一个多小时,但我无法在 .txt 文件中显示任何文本。我做错了什么?
import java.util.*;
import java.io.*;
public class writer {
public static void main(String[] args) {
try {
File txt = new File("myTextFile.txt");
FileWriter fw = null;
fw = new FileWriter(txt);
BufferedWriter edit = null;
edit = new BufferedWriter(fw);
String s = "more text", line = null;
edit.write(s);
Scanner sc = new Scanner(txt);
while (sc.hasNextLine()) {
String i = sc.nextLine();
System.out.println(i);
}
sc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
编辑:添加了一个 .write,但它仍然不起作用
您永远不会关闭 BufferedWriter
实例,也永远不会刷新它。因此,您永远不会更改要有效写入物理文件的流缓冲区。
实际上,您从写入之前使用的同一来源读取文件。因此,在使用 Scanner
:
BufferedWriter
的缓冲区
BufferedWriter edit = new BufferedWriter(fw);
String s = "more text", line = null;
edit.write(s);
edit.flush(); // modification here
Scanner sc = new Scanner(txt);