天天看点

JavaIO学习:字节流

抽象基类:InputStream,OutputStream。

字节流可以操作任何数据。

JavaIO学习:字节流

注意:

字符流使用的数组是字符数组,char[] chs ;

字节流使用的数组是字节数组,byte[] bt ;

目前学习的流对象:

字符流: FileReader FileWriter BuffereedReader BufferedWriter

字节流:FileInputStream FileOutputStream BufferedInputStream BufferedOutputStream

1.字节流的read()方法读取的是一个字节。为什么返回的不是byte类型,而是int类型呢?

因为read方法读到末尾时返回的是-1,而在所操作的数据中很容易出现连续多个1的情况,而连续读到8个1,就是-1,导致读取会提前停止。所以将读到的一个字节提升为一个int类型的数值,但是只保留原字节,并在剩余二进制位补0。

具体操作是:byte&255 or byte&0xff

对于write方法,可以一次写入一个字节,但接收的是一个int类型数值。只写入该int类型的数值的最低一个字节(8位)。

简单说:read方法对读到的数据进行提升,write对操作的数据进行转换。