从控制台读取并使用 stdio 写入文件
Read from Console and write to file with stdio
我有这段代码可以从控制台读取和写入。我想覆盖 while 循环,这样输出就不会写入控制台,而是写入本地保存在我电脑上的 .txt 文件。
我已经搜索并找到了一种将 System.out 重定向到 OutputStream(?) 的方法,但问题是我想在控制台上显示一个确认信息,即 write/output 到文件的操作已经执行。一旦我重定向 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");
}
}
您可以使用 FileWriter
写入文件而不是写入终端。
确保在完成文件后 flush
and 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();
}
}
使用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();
}
}
我有这段代码可以从控制台读取和写入。我想覆盖 while 循环,这样输出就不会写入控制台,而是写入本地保存在我电脑上的 .txt 文件。 我已经搜索并找到了一种将 System.out 重定向到 OutputStream(?) 的方法,但问题是我想在控制台上显示一个确认信息,即 write/output 到文件的操作已经执行。一旦我重定向 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");
}
}
您可以使用 FileWriter
写入文件而不是写入终端。
确保在完成文件后 flush
and 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();
}
}
使用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();
}
}