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方法阻塞,然后客户端突然就断链了 ,则会抛出异常。
本文详细介绍了Java中字节流的读取方法及原理,并通过实例解释了一个字节等同于两个16进制数据的概念。同时,对Socket编程中的阻塞IO进行了深入浅出的讲解,包括其工作原理及常见应用场景。
6925

被折叠的 条评论
为什么被折叠?



