字符流的基类是Reader类和Writer类。它们的常用子类是BufferedReader和BufferedWriter。
一、Reader
1、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和BufferedReader两个类都是Reader抽象类的子类,它们可以通过字符流的方式读取文件,并使用缓存区,提高了读文本文件的效率。下面我们用代码来实现字符流读文本文件。
//1、引入相关的类
//2、构造一个BufferedReader对象
FileReader fr=new FileReader("a.txt");
BufferedReader br=new BufferedReader(fr);
//3、利用BufferedReader类的方法读取文本文件的数据
br.readLine();//读取一行数据,返回字符串
//4、关闭流
br.close();
fr.close();
二、Writer
1、Writer类常用方法
write(String str)
write(String str,int off,int len)
void close()
void flush()
子类OutputStreamWriter常用的构造方法
OutputStreamWriter(OutputStream out)
OutputStreamWriter(OutputStream out,String charsetName)
2、FileWriter和BufferedWriterr两个类都是Writer抽象类的子类,它们可以通过字符流的方式并通过缓冲区把数据写入文本文件,提高了读文本文件的效率。下面我们用代码来实现字符流写入文本文件。
//1、引入相关的类
//2、构造一个BufferedWriter对象
FileWriter fw=new FileWriter("a.txt");
BufferedWriter bw=new BufferedWriter(fw);
//3、利用BufferedWriter类的方法写文本文件
bw.write("hello")
//4、关闭流
bw.flush();
bw.close();
fw.close();
下面我们通过一个具体实例来进一步了解BufferedReader和BufferedWriter。
如何把一个文件里的内容复制粘贴到另外一个文件里,我们通过代码来实现。
public class TestBuffered {
public static void main(String[] args) throws IOException {
FileReader fr=new FileReader("123.txt");
BufferedReader br=new BufferedReader(fr);
StringBuffer sb=new StringBuffer();
String tmp;
while ((tmp=br.readLine())!=null){
sb.append(tmp+"\n");
}
System.out.println(sb.toString());
FileWriter fw=new FileWriter("222.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write(sb.toString());
bw.close();
fw.close();
br.close();
fr.close();
}
}