IO流 InputStream类的read方法 何时返回-1 何时阻塞

zzt369880281 2012-03-05 10:29:49
现在在写一个程序。发送方不是我写的,
我的inputStream时而返回-1 时而阻塞。毫无规律
...全文
590 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
安特矮油 2012-03-06
  • 打赏
  • 举报
回复
你是想让你写的读取别人提供输入流的程序在有输入的情况下就读出来,没有的话就等待别人输入?是这样的需求吗?
jiakai0419 2012-03-06
  • 打赏
  • 举报
回复
感觉,需要看in所在类的API了。

感觉你的需求像是想要异步I/O

其实,你可以直接用异步I/O的类,上网搜搜。

或者,不用也行。

那就多线程呗。
zzt369880281 2012-03-05
  • 打赏
  • 举报
回复
没有用以下这种方式

len = in.read(b);

因为这种必阻无疑
zzt369880281 2012-03-05
  • 打赏
  • 举报
回复


// Telnet对象
private TelnetClient telnet = new TelnetClient();

private InputStream in;


telnet.connect(ip, Integer.parseInt(port));
in = telnet.getInputStream();



只是个大概的样子



byte[] b = new byte[1024];
int dataByte;
int i = 0;
while((dataByte = in.read()) != -1){
b[i] = (byte) dataByte;
i++;
System.out.println((char)dataByte);
}
String ret = new String(b, 0, i);
return ret;
jiakai0419 2012-03-05
  • 打赏
  • 举报
回复
能把你具体的输入流写出来吗?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧