如何将文件作为参数?

我意识到这不是一个非常具有描述性的问题,但我不确定如何陈述它。 我写了一个解释器,Tiny_Int.java,用于编写一种名为“tiny”的语言。我需要知道的是如何使用指定的小文件运行解释器,如下所示:
java Tiny_Int <Sample.tiny
知道我正在使用它来读取这个小文件可能会有所帮助
FileReader fileReader = new FileReader(file); //file being the Sample.tiny
BufferedReader bufferedReader = new BufferedReader(fileReader);
    
已邀请:
您正在将文件重定向到Java命令,因此您应该使用标准输入流(
System.in
)读取内容,
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
使用
br.readLine()
读取每一行,直到它返回null。     
你好像在混淆两个概念。如果你想像这样使用shell重定向:
java Tiny_Int < Sample.tiny
然后shell将文件的内容推送到
System.in
,您不需要显式加载文件。你只需要从
System.in
读取它。 另一方面,如果您希望程序接受一个明确的参数,说明您要使用哪个文件,如下所示:
java Tiny_Int Sample.tiny
那么你想看看
main
String[]
参数来打开文件。 惊人的
<
可以带来多大的差异!     
如果您期望从stdin输入,请使用
System.in
FileReader fileReader = new FileReader(System.in);
请注意,如果您从这样的stdin读取,那么在Unix上,您可以使用shebang行来使您的
Sample.tiny
脚本可执行:
#!/usr/bin/java Tiny_Int

print "hello"
当您使用
./Sample.tiny
运行脚本时,JVM将与stdin上的其余脚本一起运行。     
使用传递给main方法的命令行参数(String args [])。 更多信息:http://download.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html args [0]是你的变量'file'。     

要回复问题请先登录注册