我写了以下程序:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class greeter{
public static void main(String[] args) {
try {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String line = input.readLine();
System.out.println("Hello, " + line + "! How are you today?");
line = input.readLine();
}
catch (IOException ioex) {
ioex.printStackTrace();
}
}
}
如何将文本文件的内容重定向到该程序以解释为键盘输入?基本上,我希望它能够获取文本文件的内容(name.txt(并将其读取为键盘输入。
我的参考材料说要使用
%> java greeter < name.txt
,但我不知道这是什么意思,或者它指的是什么。需要明确的是,我不是要修改程序以读取文本文件,而是将文本文件作为键盘输入输入。
。谢谢!
,因此您提供的代码段是指使用Unix终端。
%> java greeter < name.txt
在上面的示例中,您有一个Java程序迎接器,该迎接器从name.txt中获取输入。同样,如果您想从Java程序的输出创建一个文件,则可以执行此类操作。
%> java greeter < name.txt > output.txt
注意胡萝卜的方向。从本质上讲,您指着stdin并按照您想要的方式进行宣传。有关此的更多信息,请参考以下链接。
https://www.tutorialspoint.com/unix/unix-io-redirections.htm
至于您的Java问题..
您已经接近了,除了您必须在系统上循环以获取输入。
try {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String line;
while ((line = input.readLine()) != null) {
System.out.println("Hello, " + line + "! How are you today?");
}
} catch (IOException ioex) {
ioex.printStackTrace();
}
这是文件设置,并通过命令行调用int。
-MBP:testing$ cat names.txt
nick
sam
john
-MBP:testing$ java greeter <names.txt
Hello, nick! How are you today?
Hello, sam! How are you today?
Hello, john! How are you today?