ok了家人们今天继续学习IO流,
一.字符集
使用字节流输出中文可能有乱码。
因为每次读取的字节没有完全读取一个字的字节。
二.字符流
2.1 字符输出流【Writer】(抽象类)
Writer是所有字符流的超类(父类)
字符输出流
Writer
类的常用方法
public void write(int c):写出一个字符
。
public void write(char[] cbuf):将 b.length字符从指定的字符
数组写出此输出流。
public abstract void write(char[] b, int off, int len):从指定的
字符数组写出 len字符,从偏移量 off开始输出到此输出流。
public void write(String str) :写出一个字符串
。
public void write(String str,int off,int len):写出一个字符串的
一部分。
public abstract void close():关闭流,释放资源,但是在关闭
之前会先刷新流。一旦关闭,就不能再写数据。
public abstract void flush():刷新流,还可以继续写数据。
2.2 FileWriter类
FileWriter类是Writer的子类,默认使用UTF-8,和字节缓冲区。
FileWriter类的构造方法
FileWriter(File file):创建一个新的 FileWriter,给定要读取的File对
象。
FileWriter(String fileName):创建一个新的 FileWriter,给定要读
取的文件的名称。
FileWriter(File file,boolean append): 创建一个新的 FileWriter,
追加写入。
FileWriter(String fileName,boolean append): 创建一个新的
FileWriter,追加写入。
FileWriter fw = new FileWriter("文件路径");
fw.write(int/String);
fw.write("\r\n");//换行符
char[] chars = {内容};
fw.write(chars);
fw.close();
//续写
FileWriter fw = new FileWriter("文件路径",true);
fw.write(内容);
fw.close();
flush
:刷新缓冲区,流对象可以继续使用。
//刷新流
FileWriter fw = new FileWriter("文件路径",true);
fw.write(内容);
fw.flush();
fw.wirte(内容);
fw.close();
2.3 字符输入流【Reader】(抽象类)
Reader是读取字符流的所有超类(父类)
字符输入流Reader类的常用方法
public int read():每次可以读取一个字符的数据,读取到文件末
尾,返回-1。 返回字符数据的编码值。
public int read(char[] cbuf):一次最多读取cbuf.length个字符数
据,并把读取的字符数据存储到cbuf数组中。返回实际读取到的字
符数据个数。 读取到文件末尾返回:-1
2.4 FileReader类
FileReader是Reader的子类,用于读取字符文件,默认使用UTF-8和字符缓冲区。
FileReader(File file): 创建一个新的 Fi