Java 龙书编译输入

Java 龙书编译输入,java,args,Java,Args,我正在执行“Dragon book”前端编译器,它需要使用 java main.Main < fileInput.txt java main.main

我正在执行“Dragon book”前端编译器,它需要使用

java main.Main < fileInput.txt
java main.main

我的问题是:当我运行args.length时,返回的值是0。fileInput.txt不是一个参数吗?如何在代码中捕获它?

不,通过重定向提供标准输入是shell的一个功能。检测此功能使用的唯一方法是在标准io文件句柄/描述符上使用OS函数。

否,您没有向程序传递参数。而是写入已执行程序的标准输入(可通过
System.in
访问
fileInput.txt
的内容)

以防万一,示例如下:

Scanner scanner = new Scanner(System.in);
while(scanner.hasNextLine()) { 
    System.out.println(scanner.nextLine());
}
编辑:现在发现类似问题,请参阅:;-)