这是一段简单的代码:
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中
一旦input.txt被完全传送到程序中,x就会不断获得无限空值.为什么会这样?在将文件送入代码后,我是否可以使标准输入(命令行)处于活动状态?
我试过关闭流并重新打开,它不起作用.重置等也.
解决方法:
通过执行“java Read< input.txt”,您已经告诉操作系统,对于此过程,管道文件是标准的.然后,您无法从应用程序内部切换回命令行.
如果你想这样做,那么将input.txt作为文件名参数传递给应用程序,从应用程序内部自己打开/读取/关闭文件,然后从标准输入读取以从命令行获取内容.
标签:java,file,input,command-line,pipe
来源: https://codeday.me/bug/20190927/1822611.html