如何将终端输出(和输入)复制到java

时间:2016-12-19 16:46:35

标签: java printing output println

我想将终端上的所有文本保存为文本文件的输出。对于输出,可以使用一个函数来代替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);
    }
}

像这样的东西,但我无法弄清楚用户提供的输入。

先谢谢

3 个答案:

答案 0 :(得分:1)

执行此操作的常用方法不需要在Java程序中执行任何操作,并且适用于任何程序,无论其最初编写的语言是什么。

从命令行,在大多数shell(bash,C shell,MS-DOS等)中,运行:

$program > outfile.txt

其中$program是可执行文件的名称。

这通常称为redirection

答案 1 :(得分:0)

以下是如何编写正在打印的日志文件的简单示例。

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()));
    }

你可以从一个方法中调用这个代码,然后更改运行的布尔值,以便在完成后退出循环,因为如果你不退出,这将把你的程序挂起在输入循环中。也可能是个好主意。

答案 2 :(得分:-1)

您可以使用文件编写器检查链接:http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileWriter.html