字符流缓冲区

字符流缓冲区

缓冲区的出现是为了提高流的流的操作效率,所以在创建缓冲区之前必须先有流对象。


BufferedWriter

缓冲区提供了一个跨平台的换行符:newLine()

FileWriter fw=new FileWriter("D:/1.txt");//创建流对象
BufferedWriter bufw=new BufferedWriter(fw);//缓冲
for(int i=1;i<5;i++)
{
	bufw.write("abc"+i);//缓冲区写入数据
	bufw.newLine();//换行
	bufw.flush();//一定要刷新
}
bufw.close();//关闭缓冲区,也同时关闭了流对象

BufferedReader

readLine:一次读一行,当返回null时表示文件末尾。

FileReader fr=new FileReader("E:/1.txt");
BufferedReader bufr=new BufferedReader(fr);
String line=null;
while((line=bufr.readLine())!=null)
{
	System.out.println(line);
}
bufr.close();



练习:复制文本(通过缓冲区)

package recollect;

import java.io.*;

public class Bufferedwr {

	public static void main(String[] args) {
		copy();

	}
	public static void copy()
	{
		BufferedWriter bufw=null;
		BufferedReader bufr=null;
		try
		{
			bufw=new BufferedWriter(new FileWriter("D:/1.txt"));
			bufr=new BufferedReader(new FileReader("E:/1.txt"));
				
			String line=null;
			while((line=bufr.readLine())!=null)
			{
				bufw.write(line);
				bufw.newLine();
				bufw.flush();
			}
		
		}
		catch(IOException e)
		{
			throw new RuntimeException("fall");
		}
		finally
		{
			try
			{
				if(bufw!=null)
					bufw.close();
				if(bufr!=null)
					bufr.close();
			}
			catch(IOException e)
			{		
				e.printStackTrace();
			}
		}
	}

}




Java中,我们可以使用缓冲字符流字符流缓冲区来读取文件。这两种方法都比直接使用字符流要高效得多。 使用缓冲字符流读取文件的步骤如下: 1. 创建FileReader对象,用于读取文件。 2. 创建BufferedReader对象,将FileReader对象作为参数传递给它。 3. 调用BufferedReader对象的readLine()方法读取文件内容。 4. 循环调用readLine()方法,直到返回null,表示文件已读取完毕。 5. 关闭BufferedReader对象和FileReader对象。 示例代码如下: ``` FileReader fr = new FileReader("file.txt"); BufferedReader br = new BufferedReader(fr); String line; while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); fr.close(); ``` 使用字符流缓冲区读取文件的步骤如下: 1. 创建FileReader对象,用于读取文件。 2. 创建char数组,作为字符流缓冲区。 3. 创建int变量,用于记录从文件中读取的字符数。 4. 循环读取文件内容,每次读取一定数量的字符到缓冲区中。 5. 关闭FileReader对象。 示例代码如下: ``` FileReader fr = new FileReader("file.txt"); char[] buffer = new char[1024]; int len; while ((len = fr.read(buffer)) != -1) { System.out.println(new String(buffer, 0, len)); } fr.close(); ``` 注意,在使用字符流缓冲区读取文件时,我们需要使用String类的构造方法将char数组转换成字符串。同时,需要注意读取到的字符数len可能小于缓冲区的大小,因此在构造字符串时需要指定有效字符的长度。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值