Java BufferedInputStream类 、BufferedOutputStream类、BufferedReader类、BufferedWriter类(带缓存的输入/输出流)

本文介绍Java中缓存流(BufferedInputStream/BufferedOutputStream)及字符流(BufferedReader/BufferedWriter)的使用方法。重点讲解如何通过缓存机制提高文件读写效率,包括构造方法、flush方法的应用及如何逐行读写文件。

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

 BufferedInputStream类  与 BufferedOutputStream类

1、BufferedInputStream类可以对任何的InputStream类进行带缓存区的包装以达到性能的优化。

   BufferedInputStream类的两种构造方法:

(1)BufferedInputStream(InputStream in)    //创建了一个带有32个字节的缓存流

(2)BufferedInputStream(InputStream in, int size)    //创建一个按照指定的大小来创建缓存区

2、使用BufferedOutputStream输出信息和往OutputStream输出信息完全一样,只不过BufferedOutputStream有一个flush()方法用来将缓存区的数据强制输出完。

BufferedOutputStream类的两种构造方法同BufferedInputStream类。

注意:一个最优的缓存区的大小,取决于它所在的操作系统、可用的内存空间、硬件配置。


BufferedReader类 与 BufferedWriter类

BufferedReader类与BufferedWriter类分别继承Reader类与Writer类。这两个类同样具有内部缓存机制,并可以以行为单位进行输入输出。

在使用BufferedWriter类的Write()方法时,数据并没有立刻被写入至输出流中,而是首先进入缓存区中。如果想立刻将缓存区中的数据写入输出流中,一定要调用flush()方法。


BufferedWriter对象使用newLine()方法以单行的形式写入文件(写入一个行分隔符)

BufferedReader 对象读取一个字符要使用 read() 方法

从标准输入读取一个字符串需要使用 BufferedReader 的 readLine() 方法(读取一个文本行,将其返回为字符串,若无数据可读,则返回null)

import java.util.*;
import java.io.*;
import java.math.*;

public class Main{ 
    
	public static void main(String[] args) throws IOException {
		String filename = "D:/hern.txt";
		String[] str = {"这","是","H","e","r","n","!"};
		File file = new File(filename);
		FileWriter writer = new FileWriter(file);
		BufferedWriter bufferwriter = new BufferedWriter(writer);
		for(int i = 0; i < str.length; i++) {
			bufferwriter.write(str[i]);
			bufferwriter.newLine();
		}
		bufferwriter.close();
		writer.close();
		
		FileReader reader = new FileReader(file);
		BufferedReader bufferreader = new BufferedReader(reader);
		String s = null;
		int i = 0;
		while( (s = bufferreader.readLine()) != null ) {
			i++;
			System.out.print(s+" ");
		}
		bufferreader.close();
		reader.close();
		
		/*运行结果是:
		这是 Hern 的!
		*/
		
	
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值