Java IO流-概念_实现类_基本方法

Java IO流 -> 概念及分类、实现类和基本方法

1. 流的概念及分类
1.1 流的概念
  • Java程序中,对于数据的输入、输出操作以“流”(Stream)方式实现。
  • JDK提供了各种各样的“流”类,用以获取不同种类的数据;程序中通过标准的方法完成输入或输出数据。
  • Java的流类型位于java.io包中。
  • 流是指程序和其他数据源之间的数据传输。其他数据源常见的有:文件、数据库、其他程序、网络连接、内存、IO设备等。
1.2 流的分类
  • 按数据流的方向的不同,分为输入流和输出流。
  • 按处理数据的单位不同,分为字节流和字符流。
  • 按功能不同,分为节点流和处理流。
  • JDK所提供的所有流类型,都分别继承自以下四种抽象流类型。
分类字节流字符流
输入流InputStreamReader
输出流OutputStreamWriter
  • 输入流/输出流

    • 站在程序的角度来定义的。
    • 以程序为中心,数据由外部流向程序,称之为输入流InputStream(读入Reader);由程序到外部的操作,称之为输出流OutputStream(写出Writer)。
  • 字节流/字符流

    • 字节流:按照字节读取数据(InputStream、OutputStream);
    • 字符流:按照字符读取数据(Reader、Writer),其底层还是基于字节流的操作,根据指定的编码表将字节流转换成了字符流进行操作。
  • 节点流/处理流

    • 节点流:可以从一个特定的数据源(节点)读写数据(如文件、内存);
    • 处理流(包装流):是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更强大的功能,以简化操作和提高程序的效率。
2. IO流的实现类
2.1 字节流
  • 以Stream结尾的类全都是字节流,继承自InputStream的都是用于向程序输入数据,继承自OutputStream的都是用于从程序输出数据;
  • 数据的单位为字节(8bit);
  • 下图为字节输入流和输出流的实现类,蓝色为处理流,白色为字节流。
    字节流
2.2 字符流
  • 以Reader或Writer结尾的类都是字符流,继承自Reader的流都是用于向程序输入数据;继承自Writer的流都是用于从程序输出数据;
  • 数据的单位为字符(16bit);
  • 下图为字符的实现类,蓝色为处理流,白色为字节流。

字符流

3. InputStream/OutputStream类基本方法
3.1 InputStream类的方法
基本方法说明
int read() throws IOException读取一个字节并以整数0~255的形式返回,如果返回值为-1说明已经到输入流的末尾
int read(byte[] buffer) throws IOException读取一组字节并存储到一个数组buffer中,返回实际读取的字节数,如果读取前已经到输入流末尾返回-1
int read(byte[] buffer,int offset, int length) throws IOException读取length个字节, 并存储到数组buffer,从offset位置开始,返回实际读取的字节数,如果读取前已经到输入流末尾返回-1
void close() throws IOException关闭流释放资源
3.2 OutputStream类的方法
基本方法说明
int writer(int b) throws IOException向输出流中写入一个字节数据,该字节数据为参数b的低8位
int writer(byte[] b) throws IOException将一个字节类型的数组中的数据写入输出流
int writer(byte[] b,int offset, int length) throws IOException将一个字节类型的数组中的数据从指定位置开始的length个字节写入输出流
void close() throws IOException关闭流释放资源
void flush() throws IOException将输出流中缓冲区的数据全部强制送出
4. Reader/Writer基本方法
4.1 Reader类的方法
基本方法说明
int read() throws IOException读取一个字符并以整数0~255的形式返回,如果返回值为-1说明已经到输入流的末尾
int read(char[] buffer) throws IOException读取一组字符并存储到一个数组buffer中,返回实际读取的字符数,如果读取前已经到输入流末尾返回-1
int read(char[] buffer,int offset, int length) throws IOException读取length个字节, 并存储到字符数组buffer,从offset位置开始,返回实际读取的字节数,如果读取前已经到输入流末尾返回-1
void close() throws IOException关闭流释放资源
4.2 Writer类的方法
基本方法说明
int writer(int b) throws IOException向输出流中写入一个字符,该字符数据为参数b的低16位
int writer(char[] b) throws IOException将一个字符类型的数组中的数据写入输出流
int writer(char[] b,int offset, int length) throws IOException将一个字符类型的数组中的数据从指定位置开始的length个字节写入输出流
int writer(String str) throws IOException将一个字符串中的字符写入到输出流
int writer(String str,int offset, int length) throws IOException将一个字符串从offset位置开始的length个字符写入输出流
void flush() throws IOException将输出流中缓冲区的数据全部强制送出
rows IOException将输出流中缓冲区的数据全部强制送出
void close() throws IOException关闭流释放资源
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值