inputStream.read(byteArray) != -1 死循环问题
while ((len = inputStream.read(byteArray)) != -1){ message = new String(byteArray,0,len); System.out.println(len); }
类似于这种inputStream读取完数据之后,但是不跳出循环的问题,首先先看下你的inputStream是不是scoket通信的,如果是就将你的输入方的socket关闭就好
// 这是输入方 创建socket对象 Socket socket = new Socket(ip,port); OutputStream outputStream = socket.getOutputStream(); outputStream.write(("hello 我是中国人 heihei !11").getBytes()); outputStream.flush(); outputStream.close();
如果不是,是文件的的话,一般不会出现这种问题,如果出现了,可以这样:
int fileLength = conn.getContentLength();//获取到文件流的总大小
int downloadLength = 0;// 定义一个已经读取的大小
然后在循环里累计:
while ((size = inputStream.read(buf)) != -1) {
downloadLength += size;
outputStream.write(buf, 0, size);
if(fileLength == downloadLength){
//防止最后一次读取的时候,一直阻塞
break;
}
}
这样就可以了。
上一篇:
IDEA上Java项目控制台中文乱码