2025.2.25学习内容
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: