IO流简介:
概述:
I(Input, 输入)/O(Output)流,是Java中用来传输数据的方式.
划分:
按照流向分:
输入流: 读数据
输出流: 写数据
按照操作分:
字节流: 以字节为单位来操作数据.
InputStream: 字节输入流的顶层抽象类
FileInputStream: 普通的字节输入流
BufferedInputStream: 高效的字节输入流(也叫: 字节缓冲输入流)
OutputStream: 字节输出流的顶层抽象类
FileOutputStream: 普通的字节输出流
BufferedOutputStream: 高效的字节输出流(也叫: 字节缓冲输出流)
字符流: 以字符为单位来操作数据(用于读写纯文本文件)
Reader: 字符输入流的顶层抽象类
FileReader: 普通的字符输入流
BufferedReader: 高效的字符输入流(也叫: 字符缓冲输入流)
Writer: 字符输出流的顶层抽象类
FileWriter: 普通的字符输出流
BufferedWriter: 高效的字符输出流(也叫: 字符缓冲输出流)
/**
* 字符流读文件
* 1.创建字符流读文件对象
* 2.调用方法读取数据
* 3.异常处理
* 4.关闭资源
*/
public static void main(String[] args) throws IOException {
/**
* 单个字符读取
*/
//1.创建字符流读文件对象
Reader reader1 = new FileReader("lib/1.txt");
//2.调用方法读取数据 && 3.异常处理
int ch;
while((ch = reader1.read()) != -1) { //.read() 返回:字符读取,为0到65535( 0x00-0xffff )范围内的整数
System.out.println((char)ch); //转换为对应的字符
}
//4.关闭资源
reader1.close();
System.out.println("-------------------------------------");
/**
* 按字符数组读取
*/
//1.创建字符流读文件对象
Reader reader2 = new FileReader("lib/1.txt");
//2.调用方法读取数据 && 3.异常处理
char[] chs = new char[3]; //一次接收3个字符
int len;
while((len = reader2.read(chs)) != -1) { //.read(char[])返回读取到的有效字符个数,若到末尾,则返回-1
String s = new String(chs, 0, len); //将字符数组转为字符串
System.out.println(s);
}
//4.关闭资源
reader2.close();
}
附上:1.txt内容
输出结果: