javac中的重定向如何工作?

时间:2015-09-02 21:25:34

标签: javac

我目前是javaC的新手。我已经安装了JDK并设置了使其工作的路径。我已经完成了几个测试程序并且他们工作了。

假设我有一个名为Read.java的java文件和一个名为Numbers.txt的文本文件

我已将目录设置为文件所在的位置,然后输入命令

javac Read.java

然后

java Read < input.txt

问题是如何设置Read.java程序来接收input.txt文件? 我知道你可以从程序本身读取文件而无需重定向。但我想学习如何使用重定向读取文件。

2 个答案:

答案 0 :(得分:0)

Java的主要方法类似于:

public static void main(String[] args)
{
    // method body
}

args是一个用户可以传递给程序的参数数组 - 第一个参数是args[0],第二个args[1]依此类推。

要接收输入文本文件,您可以让用户键入java Read input.txtinput.txt将是第一个参数,因此您可以在主方法中使用args[0]来访问它。

命令行参数的一个简单示例:

public static void main(String[] args)
{
    String input = args[0];
    System.out.println("You entered: " + input);
}

您可以通过输入java ProgramName hello来运行此操作,输出将为You entered hello

答案 1 :(得分:0)

您需要阅读标准输入:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class IORedirection {

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

        String line;
        while((line = in.readLine()) != null){
            System.out.println(line);
        }
    }
}  

> echo "hello stdin" | java IORedirection
> hello stdin