1个字节等于2个16进制,所以java io中的字节流中读取一个字节就是读了2个16进制的数据
在项目中我们读取文件的时候经常是这样的:
byte [] bytes = new byte[1024];
int length = 0;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while((length = is.read(bytes))!=-1)
{
baos.write(bytes,0,length);
}
这个代码的意思是 首先申明一个1024字节大小的byte数组 也就是1K的数组,然后
is.read(bytes))
io流往这1K大小的数组里面放东西 如果是
is.read()
则是一个一个字节读取的,读出来就是2个16进制的数
2:socket 编程简单讲解
主要是说io的阻塞式,所谓阻塞就是说io在read的时候一直阻塞在那,因为客户端一直没有关闭,所以服务端一直在那阻塞着,如果客户端调用了关闭流的方法则会read方法读取到-1 则表示结束,如果read方法阻塞,然后客户端突然就断链了 ,则会抛出异常。