package course; /** * @author WanJl * @version 1.0 * @title Demo02 * @description 字符流 * @create 2026/8/7 */ public class Demo02 { /* 由于字节流操作字符(特别是中文)不方便,所以Java提供了字符流 字符流 = 字节流 + 字符集编码表 什么是字符集编码表? 是一个系统支持的所有的字符的集合 ,包括各个国家的文字、符号、图像符号、数字等等 计算机要像识别这些文字和符号,就需要存储一套编码表,然后按照表中的对应关系,存储对应的字符编码。 常见的字符编码:ASCII、GB-2312、GBK、Unicode(UTF-8) 字符转转对于的字节编码的方式: 这些都是String类提供的编码方式 public byte[] getBytes() 使用平台(操作系统)默认的字符集把这个字符串转换为一系列字节 public byte[] getBytes(Charset charset) 使用指定的字符集把这个字符串转换为一系列字节 public byte[] getBytes(String charsetName)使用指定的字符集名称把这个字符串转换为一系列字节 String类提供的解码方式 public String(byte[] bytes) 使用平台(操作系统)默认的字符集把这组字节数组解码为字符串 public String(byte[] bytes, Charset charset) 使用指定的字符集把这组字节数组解码为字符串 public String(byte[] bytes, String charsetName) 使用指定的字符集把这组字节数组解码为字符串 字符流: |-输入字符流 :Reader 是输入字符流的抽象类 |- 文件输入字符流 FileReader |-输出字符流 :Writer 是输出字符流的抽象类 |- 文件输出字符流 :FileWriter 字符流自带缓冲区,可以使用flush()刷新缓冲区,强制把缓冲区的内容写入到文件中。 文件字符输入输出流的创建对象方式: public FileReader(String fileName) 根据文件名创建文件字符输入流,使用的是系统默认字符集 public FileReader(File file) 根据file对象创建文件字符输入流,使用的是系统默认字符集 public FileReader(String fileName, Charset charset)根据文件名创建文件字符输入流,使用的是指定字符集 public FileWriter(String fileName)根据文件名创建文件字符输出流,使用的是系统默认字符集 public FileWriter(File file)根据file对象创建文件字符输出流,使用的是系统默认字符集 public FileWriter(File file, boolean append)根据file对象创建文件字符输出流,使用的是系统默认字符集,设置可以追加 public FileWriter(String fileName, Charset charset)根据文件名创建文件字符输出流,使用的是指定字符集 读取和写入的方法: write(int c) 写一个字符 write(char[] c) 写一个字符数组的内容 write(char[] c, int off, int len) 写一个字符数组的内容,从off开始,长度为len write(String str) 写一个字符串 write(String str, int off, int len) 写一个字符数组的内容,从off开始,长度为len flush() 刷新流,把把缓冲区的内容写入到文件中。 close() 关闭流 read () 读取一个字符 read (char[] c, int off, int len) 读取一部分字符数组 */ }