[英]How to copy the terminal output (and input) to a file in java
我想将终端上的所有文本保存为文本文件的输出。 对于输出,可以使用一个函数代替System.out.println()
class OutSave
{
String output;
public static void main()
{
output="";
print("Print this");
print("And save this");
}
public static print(String p)
{
output=output+"\n"+p;
System.out.println(p);
}
}
这样的事情,但我无法为用户提供的输入弄清楚。
提前致谢
这样做的通常方法不需要在Java程序内执行任何操作,并且对任何程序都有效,而不论它最初是用什么语言编写的。
在大多数外壳程序(bash,C shell,MS-DOS等)中,从命令行运行:
$program > outfile.txt
其中$program
是可执行文件的名称。
这通常称为重定向 。
这是一个简单的示例,说明如何写入要打印的日志文件。
class OutSave
{
File output = new File("output.txt");
public static void main()
{
print("Print this");
print("And save this");
}
public static print(String str)
{
System.out.println(str);
writeToFile(output, str);
}
public void writeToFile(File file, String str) {
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
bw.write(str);
bw.close();
}
}
编辑:记录用户输入(整数)
Boolean running = true;
System.out.println("Enter a Number: ");
while (true) {
while (!sc.hasNextInt()) {
System.out.println("Try again, Enter a Number: "); //invalid entry
sc.nextLine();
}
WriteToFile(output, Integer.toString(sc.nextInt()));
}
您可以从方法中调用此代码,然后在完成后更改正在运行的布尔值以退出循环,因为如果不退出,这会将程序挂在输入循环中。 也可以将其穿线。
您可以使用File writer检查链接: http : //java.sun.com/j2se/1.4.2/docs/api/java/io/FileWriter.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.