【Java IO流】InputStream和Reader

尚硅谷:http://www.gulixueyuan.com/course/311

InputStream & Reader

  • InputStreamReader 是所有输入流的基类。

  • InputStream(典型实现:FileInputStream

    • int read()
    • read(byte[] b)
    • int read(byte[] b, int off, int len)
  • Reader(典型实现:FileReader

    • int read()
    • int read(char [] c)
    • int read(char [] c, int off, int len)
  • 程序中打开的文件 IO 资源不属于内存里的资源,垃圾回收机制无法回收该资 源,所以应该显式关闭文件 IO 资源

  • FileInputStream 从文件系统中的某个文件中获得输入字节。FileInputStream 用于读取非文本数据之类的原始字节流。要读取字符流,需要使用 FileReader

InputStream

int read()

  • 从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因 为已经到达流末尾而没有可用的字节,则返回值 -1。

int read(byte[] b)

  • 从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。如果因为已 经到达流末尾而没有可用的字节,则返回值 -1。否则以整数形式返回实际读取 的字节数。

int read(byte[] b, int off,int len)

  • 将输入流中最多 len 个数据字节读入 byte 数组。尝试读取 len 个字节,但读取 的字节也可能小于该值。以整数形式返回实际读取的字节数。如果因为流位于 文件末尾而没有可用的字节,则返回值 -1。

public void close() throws IOException

  • 关闭此输入流并释放与该流关联的所有系统资源

Reader

int read()

  • 读取单个字符。作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff)(2个 字节的Unicode码),如果已到达流的末尾,则返回 -1

int read(char[] cbuf)

  • 将字符读入数组。如果已到达流的末尾,则返回 -1。否则返回本次读取的字符数。

int read(char[] cbuf,int off,int len)

  • 将字符读入数组的某一部分。存到数组cbuf中,从off处开始存储,最多读len个字 符。如果已到达流的末尾,则返回 -1。否则返回本次读取的字符数。

public void close() throws IOException

  • 关闭此输入流并释放与该流关联的所有系统资源
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章