2025.2.25学习内容
八、字符输入流
字符输入流的基类:Reader类
InputStreamReader类字符输入流的子类
BufferedReader类是字符输入流的子类
FileReader类是InputStreamReader的子类
8.1使用FileReader读取文件
一个文字一个文字的读取
public static void main(String[] args) throws IOException {FileReader fr=new FileReader("E:\\java吴哥\\Java的第一阶段\\2025.2.25\\Reader.txt");char[] chars = new char[1024];int count=0;StringBuffer sb=new StringBuffer();while((count=fr.read(chars,0,chars.length))!=-1){String str=new String(chars);sb.append(str,0,count);}String s = sb.toString();System.out.println(s);fr.close();
}
8.2 使用InputStreamReader类解决中文乱码
public class Demo04 {public static void main(String[] args) throws IOException {InputStream is=new FileInputStream("E:\\java吴哥\\Java的第一阶段\\2025.2.25\\Reader.txt");InputStreamReader inputStreamReader=new InputStreamReader(is,"Gbk");BufferedReader br=new BufferedReader(inputStreamReader);String str=null;while((str=br.readLine())!=null){System.out.println(str);}br.close();inputStreamReader.close();}
}
8.3 使用高效字符输入流BufferedReader读取文本内容
因为Reader类是抽象类所以需要使用Reader类的子类来写BufferedReader类的参数。
一行一行的读取
高效的字符输入流对象,特征:1、自带缓存区 2、每次读一行 3、读到的内容都为字符串
public class Demo03 {public static void main(String[] args) throws IOException {Reader fr=new FileReader("E:\\java吴哥\\Java的第一阶段\\2025.2.25\\Reader.txt");BufferedReader br=new BufferedReader(fr);String str=null;while((str=br.readLine())!=null){System.out.println(str);}br.close();fr.close();}
}
九、字符输出流
字符输出流的基类:Writer类
OutputStreamWriter类字符输出流的子类
BufferedWriter类字符输出流的子类
FileWriter类是OutputStreamWriter的子类
flush()方法用来确保缓冲区中的数据被立即写入目标设备。
FileOutputStream(file,true);//true 支持追加内容
9.1使用FileWriter写入文件
8.2 使用OutputStreamWriter类解决中文乱码
8.3 使用高效字符输出流BufferedWriter写入文本内容
十、读写二进制文件
eg:
十一、序列化与反序列化
序列化步骤
反序列化步骤
eg: