1、read()的底层是由C++实现的,返回的是unsigned byte,取值范围为[0~255],在java中没有对应的类型,所以只能用int类型接收,由Java接收得到的就是int[0、255]。java的byte只能表示[0-127]的范围,所以需要更大的类型来表示,提升为int
2、读取字节的时候,假如某个字节的八位是11111111,即-1,和表示流结束的标志相冲突,提升为int的时候,int为32位,前面不足补0,即为255,而输出流在写数据的时候则是强制转换为字节数据,只保留后面八位