读书人

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

发布时间: 2012-08-02 11:35:26 作者: rapoo

字节流无法读取到二进制数据的-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()是不够的。

读书人网 >J2SE开发

热点推荐