文章目录
一、字符流
1.字符流的概述
除了字节流,JDK还提供了用于实现字符操作的字符流,和字节流一样,字符流也有两个抽象顶级父流,分别是Reader和Writer。
思考:什么情况下使用字符流?
- 字符流也可以拷贝文本文件,但不推荐使用。因为读取时会把字节转为字符,写出时还要把字符转回字节。
- 程序需要读取一段文本,或者需要写出一段文本的时候可以使用字符流。
2.利用字符流读取文件
(1)利用文件字符流逐个字符读取文件
-
首先在当前包里面创建文本文件
-
提供代码如下:
package net.dsj.test1;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
* 功能:利用文件字符流逐个字符读文件
* 作者:王育红
* 日期:2020年08月06日
*/
public class Example03 {
public static void main(String[] args) {
//声明文件字符输入流
FileReader fr = null;
try {
//创建文件字符输入流
fr = new FileReader("src/net/dsj/test1/in");
//循环读取文件字符输入流的数据
int len = 0;
while ((len = fr.read()) != -1){
System.out.print((char)len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
//判断文件字符输入输出流是否为空
if (fr != null){
try {
//关闭文件字符输入流
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
- 运行结果
(2)利用文件字符流与字符缓冲区读取文件
- 提供代码
package net.dsj.test1;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
* 功能:利用文件字符与字符缓冲区读取文件
* 作者:王育红
* 日期:2020年08月06日
*/
public class Example04 {
public static void main(String[] args) {
//声明文件字符输入流
FileReader fr = null;
try {
//创建文件字符输入流
fr = new FileReader("src/net/dsj/test1/in");
//定义字符数组作为缓冲区
char[] buffer = new char[1024];
//循环读取文件字符输入流的数据
int