JAVA高级第七章输入和输出处理(二)
1.Reader类
Reader类常用方法
- int read( )
- int read(char[] c)
- read(char[] c,int off,int len)
- void close( )
子类InputStreamReader常用的构造方法
- InputStreamReader(InputStream in)
- InputStreamReader(InputStream in,String charsetName)
2.FileReader类
FileReader类是InputStreamReader的子类
- FileReader(File file)
- FileReader(String name)
该类只能按照本地平台的字符编码来读取数据,用户不能指定其他的字符编码类型
System.out.println(System.getProperty(“file.encoding”));
获得本地平台的字符编码类型
3.使用FileReader读取文件
与字节流FileInputStream类实现文本文件读取步骤类似
- 1.引入相关的类
import java.io.Reader;
import java.io.FileReader;
Import java.io.IOExceprion;
- 2.创建FileReader对象
Reader fr= new FileReader("D:\\myDoc\\简介.txt");
- 3.读取文本文件的数据
fr.read();
- 4.关闭相关的流对象
fr.close();
4.BufferedReader类
如何提高字符流读取文本文件的效率?
-
使用FileReader类与BufferedReader类
BufferedReader类是Reader类的子类
BufferedReader类带有缓冲区
按行读取内容的readLine()方法
BufferedReader常用的构造方法
BufferedReader(Reader in)
子类BufferedReader特有的方法
readLine()
5.使用 BufferedReader读文本文件
6.解决读取时中文乱码
读取包含中文的文本文件时,可能出现中文乱码,怎么办?
FileReader fr = new FileReader("c:\\myDoc\\hello.txt");
BufferedReader br=new BufferedReader(fr); FileInputStream fis=new FileInputStream("c:\\myDoc\\hello.txt");
//使用InputStreamReader并设置编码格式
InputStreamReader fr=new InputStreamReader(fis,"UTF-8");
BufferedReader br=new BufferedReader(fr);
7.Writer类
Writer类常用方法
write(String str)
write(String str,int off,int len)
void close()
void flush()
子类OutputStreamWriter常用的构造方法
OutputStreamWriter(OutputStream out)
OutputStreamWriter(OutputStream out,String charsetName)
8.FileWriter类
FileWriter类是OutputStreamWriter的子类
FileWriter (File file)
FileWriter (String name)
该类只能按照本地平台的字符编码来写数据,用户不能指定其他的字符编码类型
9.使用FileWriter写文件
与字节流FileOutputStream类实现向文本文件写入数据步骤类似
- 1.引入相关的类
import java.io.Reader;
import java.io.FileWriter;
Import java.io.IOException;
-
2.创建FileReader对象
Writer fw= new FileWriter("D:\\myDoc\\简介.txt");
-
3.写文本文件
fw.write();
-
4.关闭相关的流对象
fw.close();
10.BufferedWriter类
如何提高字符流写文本文件的效率?
-
使用FileWriter类与BufferedWriter类
BufferedWriter类是Writer类的子类
BufferedWriter类带有缓冲区 -
BufferedWriter常用的构造方法
BufferedWriter(Writer out)
11.使用 BufferedWriter写文件
12.读写二进制文件
DataInputStream类
FileInputStream的子类
与FileInputStream类结合使用读取二进制文件
DataOutputStream类
FileOutputStream的子类
与FileOutputStream类结合使用写二进制文件
13.使用 DataInputStream 读二进制文件
与字节流FileInputStream类实现文本文件读取步骤极其相似
14.使用 DataOutputStream写二进制文件
与字节流FileOutputStream类实现文本文件读取步骤极其相似
15.序列化和反序列化
序列化和反序列化的过程
序列化是将对象的状态写入到特定的流中的过程
反序列化则是从特定的流中获取数据重新构建对象的过程
16.实现序列化
使用集合保存对象,可以将集合中的所有对象序列化
17.实现反序列化
如果向文件中使用序列化机制写入多个对象,那么反序列化恢复对象时,必须按照写入的顺序读取