Java中IO流(3)——字符流缓冲区(传智播客毕老师视频讲解)

本文详细介绍了Java中缓冲区技术的应用,包括BufferedWriter和BufferedReader的使用方法,并通过实例展示了如何利用缓冲区提高文件复制的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缓冲区是为了提高流的效率而出现的,因此在创建缓冲区之前,应先有流对象!

1、BufferedWriter  :该缓冲区中提供了一个跨平台的换行符:newLine();

import java.io.*;
public class BufferedWriterDemo 
{
	public static void main(String[] args) throws IOException
	{
		FileWriter f=new FileWriter("abc.txt",true);
		//为了提高字符的写入效率,加入了缓冲技术。
		//只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可
		BufferedWriter bufw=new BufferedWriter(f);
		for(int i=0;i<5;i++)
		{
			bufw.write("abcdedf");
			bufw.newLine();  
			bufw.flush();  //只要用到缓冲区,就要记得刷新
		}
		bufw.close();  //关闭缓冲区,就是在关闭缓冲区中的流对象
	}
}

2、BufferedReader:该缓冲区提供了一个一次读一行的方法:readLine();

FileReader r=new FileReader("abc.txt");
BufferedReader bufr=new BufferedReader(r);
String s1=null;
while((s1=bufr.readLine())!=null) //当读到null时,表示读到文件的末尾处
<span style="white-space:pre">	</span>System.out.println(s1);
bufr.close();
3、练习:用缓冲区做一个Copy程序

import java.io.*;
public class Copy 
{
	public static void main(String[] args)
	{
		FileWriter f=null;
		FileReader r=null;
		BufferedWriter bufw=null;
		BufferedReader bufr=null;
		try
		{
			f=new FileWriter("C:\\Users\\LJ_Z\\Desktop\\abcd.txt");
			r=new FileReader("abc.txt");
			bufw=new BufferedWriter(f);
			bufr=new BufferedReader(r);
			String s=null;
			while((s=bufr.readLine())!=null)
			{
				bufw.write(s);
				bufw.newLine();
				bufw.flush();
			}
		}
		catch(IOException e)
		{
			System.out.println("缓冲区发生异常");
		}
		finally
		{
			
			try
			{
				if(bufw!=null)
					bufw.close();
			}
			catch(IOException e1)
			{
				System.out.println("写缓冲区关闭发生异常");
			}
			try
			{
				if(bufr!=null)
					bufr.close();
			}
			catch(IOException e1)
			{
				System.out.println("读缓冲区关闭发生异常");
			}
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值