我有这个代码片段,可以读取和写入控制台。我想覆盖while循环,这样输出就会被写入我本地保存的.txt文件而不是写入控制台。 我已经搜索并找到了将System.out重定向到OutputStream(?)的方法,但问题是我想在控制台上显示已执行文件写入/输出的确认。一旦我重定向System.out,我使用System.out输出的所有其他内容也被重定向(?) 你能帮助我吗?
class Echo {
public static void main (String [] args) throws java.io.IOException {
int ch;
System.out.print ("Enter some text: ");
while ((ch = System.in.read ()) != '\n') {
System.out.print ((char) ch);
}
System.out.println("Zugriff aufgezeichnet");
}
}
答案 0 :(得分:2)
您可以使用FileWriter
写入文件而不是写入termial。
完成后,请确保flush
和close
文件。
class Echo {
public static void main (String [] args) throws java.io.IOException {
int ch;
System.out.print ("Enter some text: ");
FileWrite fw=new FileWriter(new File("fileName.txt"));
while ((ch = System.in.read ()) != '\n') {
fw.write((char) ch + "");
}
System.out.println("Zugriff aufgezeichnet");
fw.flush();
fw.close();
}
}
答案 1 :(得分:0)
使用Scanner
获取输入
你不需要一个while循环然后我认为它甚至是更好的方式 使用FileWriter
在另一个答案中解释了输出我把它与nafas的代码混合在一起:
class Echo {
public static void main (String [] args) throws java.io.IOException {
Scanner sc = new Scanner (System.in);
System.out.print ("Enter some text: ");
String input = sc.nextLine();
System.out.println("Zugriff aufgezeichnet");
FileWrite fw=new FileWriter(new File("fileName.txt"));
fw.write(input);
fw.flush();
fw.close();
}
}