Java InputStream.read(byte [],int,int)方法,如何阻塞,直到读取了确切的字节数
|
我正在编写一个简单的客户端/服务器网络应用程序,通过TCP套接字发送和接收固定大小的消息. 到目前为止,我一直在使用Socket类的getInputStream()和getOutputStream()方法来获取流,然后调用InputStream类的read(byte [] b,int off,int len)方法来读取60每个字节(这是消息的大小). 后来我读了这个方法的Javadoc:
我想知道是否有任何Java“开箱即用”解决方案阻止,直到len字节被读取,如果需要永远等待. 我可以明显地创建一个简单的循环,但我觉得我正在重塑轮子.你可以建议我一个干净的Java感知解决方案吗? 解决方法使用DataInputStream.readFully.这是 JavaDocInputStream in = ... DataInputStream dis = new DataInputStream( in ); byte[] array = ... dis.readFully( array ); (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 浅谈Java后台对JSON格式的处理操作
- Java xml出现错误 javax.xml.transform.TransformerExcepti
- java – 通过使用hibernate的存储过程无法获取多个表实体
- 浅谈Java的String中的subString()方法
- java – 区分String args []和String [] args
- Java大十进制格式异常
- java – 使用接口类作为键来获取具体的实例值?
- java-开源Jalopy Eclipse插件与Ganymede兼容吗?
- java – “IllegalArgumentException:UNMAPPABLE [1]”,同
- Java中重载与重写的对比与区别
