一.定义

  IO是In和Out,即输入和输出,指的是程序与外部设备间的数据传递。Java是用流(Stream)的方式来进行数据操作,这里就称为IO流,操作流的对象都在IO包上。

二.IO流的分类

  根据不同分类方式有几种分类。

  1.按数据流的方向:输入流、输出流。

  2.按处理数据单位:字节流、字符流。

  3.按功能:节点流、处理流。

  网上的图。

io流 并发 Java java io流操作_输入流

三.IO流方法

1.字节流

  InputStream,所有字节输入流的抽象基类。

//InputStream主要方法

//从输入流中读取数据的下一个字节
read();

//从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b中
read(byte[] b);

//将输入流中最多len个数据字节读入 byte 数组
read(byte[] b, int off, int len);

//关闭此输入流并释放与该流关联的所有系统资源
close();

  OutputStream,所有字节输出流的抽象基类。

//OutputStream主要方法

//将 b.length 个字节从指定的 byte 数组写入此输出流
write(byte[] b);

//将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流
write(byte[] b, int off, int len);

//将指定的字节写入此输出流
write(int b);

//关闭此输出流并释放与此流有关的所有系统资源
close();

//刷新此输出流并强制写出所有缓冲的输出字节
flush();

2.字符流

  Reader,所有字符输入流的抽象基类。

//Reader主要方法

//读取单个字符
read();

//将字符读入数组
read(char[] cbuf);

//将字符读入数组的某一部分
read(char[] cbuf, int off, int len);

//跳过字符
skip(long n);

//关闭该流并释放与之关联的所有资源
close();

  Writer,所有字符输出流的抽象基类。

//Writer常用方法

//写入字符数组
write(char[] cbuf);

//写入字符数组的某一部分
write(char[] cbut, int off, int len);

//写入单个字符
write(int c);

//写入字符串的某一部分
write(String str, int off, int len);

//将指定字符添加到此 writer
append(char c);

//将指定字符序列添加到此 writer
append(CharSequence csq);

//将指定字符序列的子序列添加到此 writer.Appendable
append(CharSequence csq, int start, int end);

//关闭此流,但要先刷新它
close();

//刷新该流的缓冲
flush();

四.总结

  1.IO流是用来处理与外部设备间的数据传递。

  2.Java中IO流的使用,根据不同类型划分有不同方法,如按流的方向划分,按数据单位划分。