Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从终端读取文本文件并将输出保存到另一个java文件中?_Java - Fatal编程技术网

如何从终端读取文本文件并将输出保存到另一个java文件中?

如何从终端读取文本文件并将输出保存到另一个java文件中?,java,Java,嘿,我对这个还不太熟悉,但我不想硬编码一个要读入的文件,而是想从终端/命令提示符读入它。到目前为止,我在bufferedWriter中对文件名进行硬编码,但如何才能使其达到可以执行java mainout.txt等命令的位置。提前谢谢 public static void main(String[] args) { String inFile = "in.txt"; String outFile = "out.txt"; if (args.length > 1)

嘿,我对这个还不太熟悉,但我不想硬编码一个要读入的文件,而是想从终端/命令提示符读入它。到目前为止,我在bufferedWriter中对文件名进行硬编码,但如何才能使其达到可以执行java mainout.txt等命令的位置。提前谢谢

public static void main(String[] args) {

    String inFile = "in.txt";
    String outFile = "out.txt";

    if (args.length > 1) {
        inFile = args[0];
        outFile = args[1];
    }

    Lexer lexer = new Lexer(inFile);

    try {
        BufferedWriter writer = new BufferedWriter(new FileWriter(outFile));

        Token t;

        while ((t = lexer.nextToken()) != null) {
            writer.write(t.toString());
            writer.newLine();
        }

        writer.close(); 

        System.out.println("Done tokenizing file: " + inFile);
        System.out.println("Output written in file: " + outFile);
    } catch (IOException e) {
        e.printStackTrace();
  }
}
如果没有,操作系统将使用java mainout.txt处理IO重定向。相反,您从System.in读取并写入System.out。或者,根据您发布的代码,您可以使用

java main in.txt out.txt

然后,您的程序将以args[0]的形式接收in.txt,以args[1]的形式接收out.txt。

从System.in读取并写入System.out-还要记住,写入System.out的任何内容都将写入文件。例如完成标记化文件:+infle

那么为什么我不能使用?这不是告诉你的程序读取文件并将结果输出到另一个文件中的方式吗?另外,当我输入System.in或System.out时,它会给我一个错误,告诉我它不适用。@Rod当您使用时,操作系统会重定向stdin和stdout,例如Java中的System.in和System.out。好的,那么我可以在代码中更改什么来允许我使用System.in和System.out?我正在尝试不同的东西,但我要么遇到错误,要么在尝试时陷入困境。如果您在UNIX系统上,可以使用/dev/stdin和/dev/stdout。如果没有,我想你必须修改你的代码来处理流而不是文件