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

时间:2014-11-09 07:09:19

标签: java

嘿所有我对此都比较新,但我想不要硬编码要读入的文件,但我想从终端/命令提示符读取它。以下是我到目前为止所做的,我在bufferedWriter中对文件名进行了硬编码,但是我怎样才能将其发送到我可以执行命令的地方,例如(java main< in.txt> out.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();
  }
}

2 个答案:

答案 0 :(得分:4)

没有,操作系统使用java main < in.txt > out.txt处理IO重定向。而是从System.in读取并写入System.out或者,根据您发布的代码,您可以使用

运行它
java main in.txt out.txt

然后,您的计划将"in.txt"收到args[0]"out.txt"收取args[1]

答案 1 :(得分:0)

System.in读取并写入System.out - 还要记住您写入System.out的任何内容都将写入该文件。例如Done tokenizing file: + inFile