繁体   English   中英

如何将终端输出(和输入)复制到Java中的文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM