java-IO

##java—IO流介绍

1.流的概念

:任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象。

2.流的分类

  • 按照输入输出方式可以分为:
    1. 输入流:InputSream , Reader
    2. 输出流:OutputStream , Writer
  • 按照处理数据格式分类:
      1.处理字节类型数据(byte): InputSream,OutputStream
      2.处理字符类型数据(char): Reader,Writer

3.java中的IO常用类

  • 对于处理字节类型的IO类来说,InputSream与OutputStream中的类是对应的,每一个XXInputStream 对应一个XX输出流:OutputStream。
3.1 InputStream与OutputStream
  • InputStream的主要类继承图如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1BxLbxKA-1593187600718)(./IN.png)]

  • 父类InputSream中有方法read,与OutputStream中的write方法对应,有三种形式的参数列表:空,接受一个字节数组,接受一个字节数组和两个int值。
    1. read()
      从输入流读取数据的下一个字节,并返回读入的值,如果已经到达流的末尾,则返回值-1 。
    2. read( bute [ ] )
      从输入流读取一些字节数,并将它们存储到缓冲区b, 返回实际读取的字节数。如果b的长度为零,则不会读取字节并返回0 。否则,尝试读取至少一个字节。 如果没有字节可用,则返回值-1 ; 否则,读取至少一个字节并存储到b 。
    3. read(byte [ ] b, int off, int len )
      从输入流读取len字节的数据到一个字节数组。 尝试读取多达len个字节,但可以读取较小的数字。 实际读取的字节数作为整数返回。第一个字节读取存储在元素b[off] ,下一个字节存入b[off+1] ,等等。
    3.1.1 InputSream的子类
    1. ByteArrayInputStream 的构造器
      (1) ByteArrayInputStream(byte[] buf)
      (2) ByteArrayInputStream(byte[] buf, int offset, int length)
      创建一个 ByteArrayInputStream ,使用 buf作为其缓冲区数组。

    2. FileInputStream 的构造器
      (1) FileInputStream(File file) 接受一个File对象
      (2) FileInputStream(String name)    name为文件路径

    3. FilterInputStream
      该类为一个装饰器,用来包含其他的输入流
      构造器:FilterInputStream ( InputStream in)
      子类:
      (1) BufferedInputStream
      构造器
      BufferedInputStream(InputStream in)
      BufferedInputStream(InputStream in, int size)
      创建 BufferedInputStream具有指定缓冲区大小,并保存其参数,输入流 in 。
      (2) DataInputStream
      DataInputStream(InputStream in)
      创建使用指定的底层InputStream的DataInputStream

    4. StringBufferInputStream 的构造器
      StringBufferInputStream(String s) 已弃用

3.2 Reader与Writer

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sxssKn3E-1593187600720)(./RE.png)]
Reader与InputStream类似,只不过操作的数据格式是char。需要注意的是,BufferReader不在是继承FilterReader,并且Reader有一个特殊的子类InputStreamReader。

3.2.1 InputStreamReader

其构造方法接受一个InputStream
(1) InputStreamReader(InputStream in)
(2) InputStreamReader(InputStream in, Charset cs)
创建一个使用给定字符集的InputStreamReader。

(3) InputStreamReader(InputStream in, CharsetDecoder dec)
创建一个使用给定字符集解码器的InputStreamReader。

(4) InputStreamReader(InputStream in, String charsetName
创建一个使用命名字符集的InputStreamReader
由于字节到字符需要注意编码,所以要指定变码格式。

3.2.2InputStreamReader的子类FileReader

构造器
FileReader(File file)
FileReader(String fileName)
并且继承父类的构造方法。
eReader(File file)
FileReader(String fileName)
并且继承父类的构造方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值