【发布时间】:2010-11-28 17:28:38
【问题描述】:
这是一段简单的代码:
import java.io.*;
public class Read {
public static void main(String[] args) {
BufferedReader f = new BufferedReader(new InputStreamReader(System.in));
while(true)
{
String x = null;
try{
x = f.readLine();
}
catch (IOException e) {e.printStackTrace();}
System.out.println(x);
}
}
}
我将其执行为:java Read 一旦 input.txt 完全通过管道传输到程序中,x 就会不断获得无限的空值。为什么呢?在将文件输入代码完成后,有没有一种方法可以使标准输入(命令行)处于活动状态?
我试过关闭流并重新打开,它不起作用。也重置等。
【问题讨论】:
-
是否对原始代码进行了编辑以考虑接受的答案。因为该答案现在似乎不适用于此代码:该代码不会从 arg 列表中读取文件或答案所暗示的任何事情。在这种情况下,最好保留错误代码以使整个页面更有意义。
-
@Rondo - 不。 Here 是修订版。
标签: java file command-line input pipe