当前位置: 代码迷 >> J2SE >> 字节流没法读取到二进制数据的-1标志
  详细解决方案

字节流没法读取到二进制数据的-1标志

热度:14   发布时间:2016-04-24 00:28:13.0
字节流无法读取到二进制数据的-1标志
发送端主要代码
Java code
DataOutputStream daOutStream=new DataOutputStream(socket.getOutputStream());daOutStream.write(字节数据);daOutStream.flush();


接受段主要代码
Java code
DataInputStream daInStream=new DataInputStream(socket.getInputStream());ByteArrayOutputStream baOutputStream=new ByteArrayOutputStream(1024);while(true){      byte[] buffer=new byte[1024];      int total=0;      total=daInStream.read(buffer);      while((total=daInStream.read(buffer))!=-1 ){         baOutputStream.write(buffer, 0, total);      }}

当读取到流尾端时
total=daInStream.read(buffer)
total没有返回-1标示,而是直接阻塞住了

------解决方案--------------------
-1表示流彻底结束,再也没东西了,那么需要发送方:
daOutStream.close();

光flush()是不够的。
  相关解决方案