如何将文件作为参数?

时间:2011-01-26 01:43:57

标签: java

我意识到这不是一个非常具有描述性的问题,但我不确定如何陈述它......

我写了一个解释器,Tiny_Int.java,用于编写一种名为“tiny”的语言。我需要知道的是如何使用指定的小文件运行解释器:

java Tiny_Int <Sample.tiny

知道我正在使用它读取小文件

可能会有所帮助
FileReader fileReader = new FileReader(file); //file being the Sample.tiny
BufferedReader bufferedReader = new BufferedReader(fileReader);

4 个答案:

答案 0 :(得分:4)

你似乎在混淆两个概念。如果你想像这样使用shell重定向:

java Tiny_Int < Sample.tiny

然后shell会将文件内容推送到System.in,您无需显式加载文件。您只需要从System.in读取它。

另一方面,如果您希望程序接受一个明确的参数来说明您要使用哪个文件,请执行以下操作:

java Tiny_Int Sample.tiny

然后,您需要查看String[]的{​​{1}}参数才能打开文件。

令人惊讶main能有多大差异!

答案 1 :(得分:3)

您正在将文件重定向到Java命令,因此您应该使用

从标准输入流(System.in)读取内容
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

使用br.readLine()读取每一行,直到它返回null。

答案 2 :(得分:2)

如果您期待来自标准输入的输入,请使用System.in

FileReader fileReader = new FileReader(System.in);

请注意,如果您从这样的stdin读取,那么在Unix上,您可以使用shebang行来使Sample.tiny脚本可执行:

#!/usr/bin/java Tiny_Int

print "hello"

当您使用./Sample.tiny运行脚本时,JVM将在stdin上使用脚本的 rest 运行。

答案 3 :(得分:0)

使用传递给main方法的命令行参数(String args [])。

更多信息:http://download.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html

args [0]是你的变量'file'。