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

如何将终端输出(和输入)复制到java中的文件,java,printing,output,println,Java,Printing,Output,Println,我想将终端上的所有文本保存为文本文件的输出。对于输出,可以使用一个函数代替System.out.println() 类似这样的东西,但对于用户提供的输入,我无法理解这一点 提前感谢您可以使用File writer检查链接:通常的方法不需要在Java程序中执行任何操作,并且适用于任何程序,而不管它最初是用什么语言编写的 在大多数shell(bash、C shell、MS-DOS等)中,从命令行运行: 其中,$program是可执行文件的名称 这通常被称为。下面是一个简单的示例,说明如何编写打印内容

我想将终端上的所有文本保存为文本文件的输出。对于输出,可以使用一个函数代替System.out.println()

类似这样的东西,但对于用户提供的输入,我无法理解这一点


提前感谢

您可以使用File writer检查链接:

通常的方法不需要在Java程序中执行任何操作,并且适用于任何程序,而不管它最初是用什么语言编写的

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

其中,
$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();
    }
}
编辑:记录用户输入(ints)


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

欢迎提供一个指向潜在解决方案的链接,但请让您的其他用户了解它是什么,以及它为什么存在。始终引用重要链接中最相关的部分,以防无法访问目标站点或永久脱机。考虑到对于@Krim_0来说,仅仅是一个指向外部站点的链接是一个可能的原因,该链接是一个404链接,但是用户@Daedricprint(“输入编号”)给出的输入又如何呢;int n=sc.nextInt();。终端输出-输入数字。10文件输出-输入NumberUse system.in作为用户输入。它将如何帮助获得文件@daedricb的输入,但我应该使其自动@Paul brinkley一般来说,使其自动是简单的;将带有重定向的命令放在shell脚本中。。。如果您是说您被任意要求在Java程序本身中实现这一点,那么这取决于您可以对其中已有的任何
System.out.print
调用执行什么操作。如果您可以更改它们,那么您可能会实现日志记录,在这种情况下,您应该查找日志记录包,例如log4j。或者,您可以使用
System.setOut()
替换这些流。但是你需要提供更多关于你正在做什么的信息。
$program > outfile.txt
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()));
    }