Reader 类
抽象类 代表字符流
Reader的子类
- BufferedReader
工作方式
BufferedReader维护一个内部的8192个字符缓冲器。
在BufferedReader中进行读取操作期间,将从磁盘读取一部分字符并将其存储在内部缓冲区中。 并且从内部缓冲区中单独读取字符。
因此,减少了与磁盘的通信次数,BufferedReader可以更快地读取字符。//创建一个FileReader FileReader file = new FileReader(String file); //创建一个BufferedReader BufferedReader buffer = new BufferedReader(file); //创建一个具有指定大小的内部缓冲区的>BufferdReader BufferedReader buffer = new BufferedReader(file, int size);
- InputStreamReader
- FileReader
创建文件阅读器
1.使用文件名FileReader input = new FileReader(String name);
在这里,我们创建了一个文件阅读器,该文件阅读器将链接到所指定的文件名。
2.使用文件的对象FileReader input = new FileReader(File fileObj);
在这里,我们创建了一个文件读取器,该文件读取器将链接到文件对象所指定的文件。
- StringReader 用于从字符串读取数据
示例:
import java.io.StringReader;
public class Main {
public static void main(String[] args) {
String data = "This is the text read from StringReader.";
//创建一个字符数组
char[] array = new char[100];
try {
//创建一个StringReader
StringReader input = new StringReader(data);
//使用read方法
input.read(array);
System.out.println("从字符串读取数据:");
System.out.println(array);
input.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Reader方法
方法 | 描述 |
---|---|
ready() | 检查Reader是否准备好读取 |
read(char[] array) | 从流中读取字符并存储在指定的数组中 |
read(char[] array, int start, int length) | 从流中读取length相等的字符数,并从start开始存储在指定的数组中 |
mark() | 标记流中已读取数据的位置 |
reset() | 重置流。如果流已被标记,然后尝试进行标记,以重新定位。如果该流未被标注,然后尝试将其复位在适当的特定流的一些方法,例如通过将其重新定位到其起始点。 |
skip() | 从流中丢弃指定数量的字符 |
Writer
Writer 子类
- BufferedWriter
- OutputStreamWriter
- FileWriter
- StringWriter
Writer的方法
方法 | 描述 |
---|---|
write(char[] array) | 将指定数组中的字符写入输出流 |
write(String data) | 将指定的字符串写入写入器 |
append(char c) | 将指定字符插入当前写入器 |
flush() | 强制将写入器中存在的所有数据写入相应的目的地 |
close() | 关闭写入器 |