readline问题? input 是有内容输出的。只是内容输出完了之后while()就不会跳出,readline()一直阻塞!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该不是readLine的问题,执行命令的输出有没有问题呢你的括号{}好像不匹配,while后面少{,System.out.println("OK");后面少} 噢,System.out.println("OK")是临时写上去的,位置看错了。不好意思。执行命令的输出没有问题,和单独执行命令是一样的,就是到最后一行时停住了。 while ((line = input.readLine ()) != null) // while 循环永远不会跳出!!!! System.out.println(line);}也是写的“标准终端”,exec的也是“标准终端”,这样你读一行,有写一行,死循环了。去掉System.out.println(line);就可以了。或则,你把输出重新定向一下。System的setOut(PrintStream out) 去掉了System.out.println(line)之后,也不行,还是死循环!而且好象不是这个原因,如果是的话,那应该是不断循环输出,那结果是输完之后就停住不再输出了。 我觉得你应该判断一下,如果输入的是某个单词,如“quit”,就让它退出阿,system.exit(0)while ((line = input.readLine ()) != null) {System.out.println(line);if(Line.equals("quit")) System.exit(0) ;}待一会我测试一下。 readLine读取终端采用阻塞,因为终端没有如文件的EOF 这不是问题:因input为标准输入,while ((line = input.readLine ()) != null)是永远无法退出的。执行过程如下:input.readline():阻塞,等待用户输入,直到输入一回车,继续line = input.readLine():赋值line != NULL:判断。因为readLine是包括回车的,所以line至少包含一个回车,所以结果永远为真结论:死循环。解决办法如xuzhike() 所说。 没有办法判断最后的是什么单词。因为我想得到的是调用的那个程序的结果。比如说是“ls”命令。而不是等待用户的输入。那有没有办法使终端也有文件的EOF呀,或者使readline读取终端使不采用阻塞?? Hibernate配置问题`! 一个关于sql分段运行的问题. Jdeveloper如何添加jar包? floatValue()干什么用? java支持压缩与解压缩, 怎么用啊?帮帮我, 加急 一个String类型的变量,当它是中文时,调用length()怎么得到的长度是实际长度的一半呢?因为一个中文字符占两个字节啊? 非法的表达式开始 请问.jj的文件如何编译 请教两个单词 实现走马灯效果的JLabel,但是有个小问题,大家一定要看看!!!!!!!!!!!!! 问一个最低级的问题 如何用JAVA实现WINDOWS 下的MS-DOS命令
你的括号{}好像不匹配,while后面少{,System.out.println("OK");后面少}
执行命令的输出没有问题,和单独执行命令是一样的,就是到最后一行时
停住了。
System.out.println(line);
}也是写的“标准终端”,exec的也是“标准终端”,这样你读一行,有写一行,死循环了。去掉System.out.println(line);
就可以了。或则,你把输出重新定向一下。System的setOut(PrintStream out)
而且好象不是这个原因,如果是的话,那应该是不断循环输出,那结果是
输完之后就停住不再输出了。
while ((line = input.readLine ()) != null)
{
System.out.println(line);
if(Line.equals("quit"))
System.exit(0) ;
}待一会我测试一下。
input.readline():阻塞,等待用户输入,直到输入一回车,继续
line = input.readLine():赋值
line != NULL:判断。因为readLine是包括回车的,所以line至少包含一个回车,所以结果永远为真
结论:死循环。
解决办法如xuzhike() 所说。
比如说是“ls”命令。而不是等待用户的输入。那有没有办法使终端也有文件的EOF呀,或者使readline读取终端使不采用阻塞
??