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)
*
*
* FileReader类
*
* FileReader类是InputStreamReader的子类
* FileReader(File file)
* FileReader(String name)
* 该类只能按照本地平台的字符编码来读取数据,用户不能指定其他的字符编码类型
* System.out.println(System.getProperty("file.encoding"));
获得本地平台的字符编码类型
* 使用FileReader读取文件
*
* 与字节流FileInputStream类实现文本文件读取步骤类似
* 引入相关的类
* import java.io.Reader;
* import java.io.FileReader;
* Import java.io.IOExceprion;
* 创建FileReader对象
* Reader fr= new FileReader("D:\\myDoc\\简介.txt");
* 读取文本文件的数据
* fr.read();
* 关闭相关的流对象
* fr.close();
*
* BufferedReader类
* 如何提高字符流读取文本文件的效率?
* 使用FileReader类与BufferedReader类
* BufferedReader类是Reader类的子类
* BufferedReader类带有缓冲区
* 按行读取内容的readLine()方法
* BufferedReader类
* BufferedReader常用的构造方法
* BufferedReader(Reader in)
* 子类BufferedReader特有的方法
* readLine()
* 使用 BufferedReader读文本文件
* 引入相关的类:
* import java.io.FileReader;
* import java.io.BufferedReader;
* import java.io.IOException;
* 构造ButterdReader对象和FileReader
* Reader fr=new FileReader("C:\\myTest.txt ");
* BufferedReader br=new BufferedReader(fr);
* 调用readLing()方法读取数据
br.readLine();
* 关闭文件流对象
* br.close();
* fr.close();
*
* 解决读取时中文乱码
* 读取包含中文的文本文件时,可能出现中文乱码,怎么办
* 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);
*
* 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)
* FileWriter类
* FileWriter类是OutputStreamWriter的子类
* FileWriter (File file)
* FileWriter (String name)
* 该类只能按照本地平台的字符编码来写数据,用户不能指定其他的字符编码类型
使用FileWriter写文件
与字节流FileOutputStream类实现向文本文件写入数据步骤类似
引入相关的类
import java.io.Reader;
import java.io.FileWriter;
Import java.io.IOException;
创建FileReader对象
Writer fw= new FileWriter("D:\\myDoc\\简介.txt");
写文本文件
fw.write();
关闭相关的流对象
fw.close();
BufferedWriter类
如何提高字符流写文本文件的效率?
使用FileWriter类与BufferedWriter类
(BufferedWriter类是Writer类的子类BufferedWriter类带有缓冲区)
BufferedWriter常用的构造方法
* BufferedWriter(Writer out)
* 使用 BufferedWriter写文件
* 引入相关的类:
* import java.io.FileWriter ;
* import java.io.BufferedWriter ;
* import java.io.IOException;
* 构造BufferedWriter对象和Filewriter
* FileWriter fw=new FileWriter("C:\\myTest.txt");
* BufferedWriter bw=new BufferedWriter(fw);
* 调用write()方法读取数据
* bw.write("hello");
* 流对象的清空和关闭
* bw.flush();
* fw.close();
*
* 读写二进制文件
*
* DataInputStream类
* FileInputStream的子类
* 与FileInputStream类结合使用读取二进制文件
* DataOutputStream类
* FileOutputStream的子类
* 与FileOutputStream类结合使用写二进制文件
*
*
* 使用 DataInputStream 读二进制文件
*
* 引入相关的类:
* import java.io.FileInputStream;
* import java.io.DataInputStream;
* 构造数据输入流对象
* FileInputStream fis=new
* FileInputStream("C:\\HelloWorld.class");
* DataInputStream dis=new DataInputStream(fis);
* 调用read()方法读取二进制数据
* dis.read ();
* 流对象的清空和关闭
* dis.close();
*
* 使用 DataOutputStream写二进制文件
*
* 引入相关的类:
* import java.io.FileOutputStream;
* import java.io.DataOutputStream;
* 构造数据输出流对象
* FileOutputStream outFile=new FileOutputStream("C:\\temp.class");
* DataOutputStream out=new DataOutputStream(outFile);
* 调用read()方法读取二进制数据
* out.write();
* 流对象的清空和关闭
* out.close();
*
*
* 序列化和反序列化
* 序列化和反序列化的过程
* 内存(java对象)---》序列化---》流(二进制的字节序列)
* 流(二进制的字节序列)---》反序列化---》内存(java对象)
* 序列化是将对象的状态写入到特定的流中的过程
* 反序列化则是从特定的流中获取数据重新构建对象的过程
*
* 实现序列化
* 序列化步骤:
* 实现Serializable--》创建对象输出流--》调用WriteObject()方法将对象写入文件--》关闭对象输出流
* 使用集合保存对象,可以将集合中的所有对象序列化
* 反序列化的步骤
* 实现Serializable--》创建对象输入流--》调用readObject()方法读取对象--》关闭对象输入流
* 如果向文件中使用序列化机制写入多个对象,那么反序列化恢复对象时,必须按照写入的顺序读取