问题描述
InputStream读入字节时,CPU会爆满
问题出现的环境背景及自己尝试过哪些方法
经过排查修改,找到了问题,但是很迷惑,不知道为什么会出现这种情况,如图
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
@Override
public void run() {
byte[] b = new byte[1024];
InputStream is = null;
OutputStream os = null;
int n=0;
try {
is = readSocket.getInputStream();
os = writeSocket.getOutputStream();
while(!readSocket.isClosed() && !writeSocket.isClosed() && (n=is.read(b))>-1){
//int size = is.read(b);
os.write(b, 0, n);
os.flush();
}
} catch (Exception e) {
e.printStackTrace();
}finally {
System.out.println("finally进入");
try {
if (is != null) {
is.close();
}
if (null != os) {
os.flush();
os.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
你期待的结果是什么?实际看到的错误信息又是什么?
我希望了解为什么n=is.read(b)这句代码放在不同的位置会造成完全不同的影响,感谢