首页 新闻 会员 周边 捐助

readLine一直不返回null在while循环里出不来,求解!!!!

0
悬赏园豆:20 [已解决问题] 解决于 2016-10-28 15:24
Process process = Runtime.getRuntime().exec(exec + " " + files);
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((input.readLine()) != null) {
System.out.println(input.readLine());
}
input.close();

//readline读取的是固定文本的内容,读取完成后不跳出循环
i火舞的主页 i火舞 | 初学一级 | 园豆:60
提问于:2016-10-28 11:39
< >
分享
最佳答案
0

怎么会有null呢。。好歹也是比如readline!='quit'

收获园豆:20
czd890 | 专家六级 |园豆:14488 | 2016-10-28 11:58

readline不是读取完后返回null吗??

i火舞 | 园豆:60 (初学一级) | 2016-10-28 12:09

@i火舞: 恐怕不是这样的。readline 是等待读取。是一个wait的过程

czd890 | 园豆:14488 (专家六级) | 2016-10-28 12:12

@calvinK: 只能判断读到某个字符比如说:readline!='quit' 才能跳出循环么?但不知道读取的内容有什么怎么才能跳出呢?

i火舞 | 园豆:60 (初学一级) | 2016-10-28 14:25

@i火舞: 你要跳出循环总要有特定的条件的把,对不。比如输入了quit,比如等待了多少秒还没有输入推出

假定你的cmd程序一直没输入,则代码一直卡在readline()方法里面,方法里面把当前线程暂停了,等待输入返回。

czd890 | 园豆:14488 (专家六级) | 2016-10-28 15:16

@calvinK: 那么问题又回来了  条件就是input.readLine()返回null时跳出啊  现在问题就是 一直在等待读取不返回null  可以考虑加个时间 多次时间读取不到 跳出  。谢谢你的回答 分就给你了!!

i火舞 | 园豆:60 (初学一级) | 2016-10-28 15:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册