字节流和字符流

2018-06-16  本文已影响14人  黎繁介

1.InputStream和Reader

        InputStream和Reader是所有输入流的基类,作为抽象类,不能创建实例,但是它们的方法是所有输入流都能使用的。

        InputSteam的三个方法:

        →int read():从输入流中读取单个字节,然后返回读取的字节数据(字节数组直接转换为int类型)。

        →int read(byte[] b):从输入流中最多读取b.length个字节的数据,然后将数据存储在数组b中,最后返回实际读取的字节数。

        →int read(byte[] b ,int off ,int length):从输入流中读取最多length个字节的数据,然后保存在数组b中以off位置为起点,最后返回实际读取的字节数。

Reader的三个方法:

        →int read():从输入流中读取单个字符,然后返回读取的字符(字符数组直接转化为int类型)。

        →int read(char[] ch):从输入流中最多读取ch.length个字符,然后将读取到的字符数据存储到数组ch中,最后返回实际读取的字符个数。

        →int read(char[] ch ,int off ,int length):从输入流中读取最多length个字符,然后将读取到的字符存储到数组ch中,并且存储在数组的位置以off开始。


我们以FileInputStream和FileReader(读取文件的输入流)为例子:

FileInputStream实例 FileReader实例

2.OutputStream和Writer

        OutputStream和Writer的三个方法:

        →void write(int c):将指定的c输出到输出流,int 类型c占32位,但只写入c的8个低位,24个高位忽略。

        →void write(byte[]/char[] buff):将字节数组/字符数组输出到输出流。

        →void write(byte[]/char[] buff ,int off ,int length):将字节/字符数组从off位置开始,输出长度为length的字节/字符。

        同时,Writer输出流的write方法可以直接使用字符串输出到输出流。

我们看代码例子:

FileOutputStream实例 FileWriter实例

最后我们给上图理解各种流之间的关系:

InputStream和OutputStream

Reader和Writer

上一篇 下一篇

猜你喜欢

热点阅读