一:BufferedReader(缓冲输入流)和BufferedWriter(缓冲输出流)构造方法和常用方法简介
BufferedReader(缓冲输入流):

常用方法:注意readLine()在某些文档处理中常用,以前在实际开发中也曾重点用过这个方法

……………………………………………………
BufferedWriter(缓冲输出流):
构造方法

常用方法:

……………………………………………………
二:文件复制示例
(1)下面的例子,是现用字节流读数据,然后把字节流转成字符流(这一步是为了模拟网络传输的场景),然后把字符流转成字符缓冲流。
(2)疑问:为什么要用字节流去读文件,这儿是为了模拟数据的网络传输(因为,数据在网络上传输时,都是以字节流的形式传输的)。这儿模拟了一下,本地接受网络上过来的数据时,需要先进行字节流和字符流的转换。
(3)而实际上,字符流也提供了文件读写类:FileReader和FileWriter(下篇博客介绍这两个类)
public class ReaderDemo1 {
public static void main(String[] args) {
try {
// (1)先用字节输入流读取数据,得到文件的字节流(后续再转成字符流)
FileInputStream fis = new FileInputStream("imooc.txt");
FileOutputStream fos = new FileOutputStream("imooc1.txt");
// (2)将字节流转成字符流,这一步是流的连接
InputStreamReader isr = new InputStreamReader(fis);
OutputStreamWriter osw = new OutputStreamWriter(fos);
// (3)将字符流转成 带缓冲的字符流,这又是一次流的连接
BufferedReader br = new BufferedReader(isr);
BufferedWriter bw = new BufferedWriter(osw);
int n = 0;
// (4)定义字符数组,存放读取到的字符
char[] cbuf = new char[10];
// (5)读写文件
while((n = br.read(cbuf))!= -1){
bw.write(cbuf, 0, n); // OutputStreamWriter类的write()方法有很多重载形式,可按需求选用
}
// (6)flush并关闭流
bw.flush();
fis.close();
fos.close();
isr.close();
osw.close();
br.close();
bw.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
}
}
本文介绍了使用Java中的缓冲输入流(BufferedReader)和缓冲输出流(BufferedWriter)进行文件复制的方法。通过实例展示了如何将字节流转换为字符流,并利用缓冲流提高文件读写的效率。
2204

被折叠的 条评论
为什么被折叠?



