我正在尝试读取一个指向程序的输入文本。
Java Echo < input.txt
import java.util.Scanner;
public class Echo {
public static void main(String[] args) {
// Reads Text File
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()){
System.out.println(sc.nextLine());
}
// Reads User's Input
System.out.println("Keyboard Input: ");
if(sc.hasNextLine()){
System.out.println(sc.nextLine());
}
}
}
在读取输入时,sc.nextLine
将返回null
。
如何使sc.nextLine()
从用户输入而不是文件中读取?
结果
$ java Echo < input.txt
A:Economy:name:W
Keyboard Input:
未读取键盘输入,而是仅为空白。 我怎样才能使用户可以在命令行之后输入输入?
答案 0 :(得分:0)
你问不可能的事。输入已被重定向,它将保持重定向。您必须提供文件名作为参数,并为其运行不同的Scanner
。
NB nextLine()
对hasNext()
进行测试无法控制hasNextLine()
也没有意义。它应该是const char* hello="hello";
,就像你的第一个阅读循环一样。