java网络读取遇到-1的疑惑

hppyhjh01 2014-09-24 04:24:45
java网络编程读取网络数据时,可以按字节一直读,如果读到字节的值等于-1,则结束,因为-1表明对方关闭了连接。

但是,如果网络数据是一个二进制流,流中间有一个字节的值就是-1,难道读到这个-1后就认为读完了而不读了?
...全文
110 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
東刀人 2014-09-25
  • 打赏
  • 举报
回复
如一楼说言,楼主多虑了!
skgary 2014-09-25
  • 打赏
  • 举报
回复
引用 楼主 hppyhjh01 的回复:
java网络编程读取网络数据时,可以按字节一直读,如果读到字节的值等于-1,则结束,因为-1表明对方关闭了连接。 但是,如果网络数据是一个二进制流,流中间有一个字节的值就是-1,难道读到这个-1后就认为读完了而不读了?
一楼正解。 字节如何表示-1呢?
一大三千 2014-09-24
  • 打赏
  • 举报
回复
java网络读取数据流一般都是读到流的末尾,没有下个数据流了才返回-1.并不是读到-1就出现不读的情况。
白开水MD5 2014-09-24
  • 打赏
  • 举报
回复
read public int read() throws IOException从类 InputStream 复制的描述 从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。 子类必须提供此方法的一个实现。 指定者: 类 InputStream 中的 read 返回: 下一个数据字节;如果到达流的末尾,则返回 -1。 抛出: IOException - 如果发生 I/O 错误。 另请参见: portable 包中有关未实现特性的注释
skyWalker_ONLY 2014-09-24
  • 打赏
  • 举报
回复
楼主多虑了,返回的值的范围为0到255,所以不会出现你所说的中间结果是-1的情况

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧