Java输入输出流七:字符流之BufferedReader(缓冲输入流)和BufferedWriter(缓冲输出流)

本文介绍了使用Java中的缓冲输入流(BufferedReader)和缓冲输出流(BufferedWriter)进行文件复制的方法。通过实例展示了如何将字节流转换为字符流,并利用缓冲流提高文件读写的效率。

一: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();
		}
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值