什么是Java中的IO流?
Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。 Java的I/O流提供了读写数据的标准方法
I:表示输入(Input读取数据),从硬盘读取数据到内存中,这个过程称为输入流
O:输出(Output 写数据),程序的数据写入到我们的硬盘中,这个过程称为输出流
流的三种分类方式
- 按流的方向分为:输入流和输出流
- 按流的数据单位不同分为:字节流和字符流
- 按流的功能不同分为:节点流和处理流
IO流的常用基类:
- 字节流的抽象基流:InputStream和OutputStream
- 字符流的抽象基流:Reader和Writer
IO流对象
File类
File
类是用来操作文件的类,但是不能操作文件中的数据,支持序列化和排序
File的构造函数:
File的常用方法:
- createNewFile():当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件
- delete():删除此抽象路径名表示的文件或目录
- exists():测试此抽象路径名表示的文件或目录是否存在
- getAbsoluteFile():返回此抽象路径名的绝对路径名形式
- getAbsolutePath():返回此抽象路径名的绝对路径名字符串
- length():返回由此抽象路径名表示的文件的长度
- mkdir():创建此抽象路径名指定的目录
字节流
字节流写数据
字节流写数据的方式:
- write(int b):一次写一个字节
- write(byte[]b):一次写一个字节数组
- write(byte[] b,int off,int len):一次写一个字节数组的一部分
- flush():刷新缓冲区
- close():释放资源
字节流读取数据
字节流读数据的方法:
- int read():一次读取一个字节
- int read(byte[] b):一次读取一个字节数组
- int read(byte[] b,int off,int len):一次读一个字节数组的一部分
- void close():释放资源
字符流
OutputStreamWriter字符输出流
InputStreamReader字符输入流
OutputStreamWriter写数据方法
- write(int c):写入一个字符
- write(char[] cbuf):写入一个字符数组
- write(char[] cbuf,int off,int len):写入一个字符数组的一部分
- write(String str):写入一个字符串
- write(String str,int off,int len):写入一个字符串的一部分
InputStreamReader读数据方法
- public int read():一次读一个字符
- public int read(char[] cbuf):一次读一个字符数组
FileWriter
FileReader
字符缓冲流
BufferedWriter
BufferedReader