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

 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 的!
		*/
		
	
	}

}

你可能感兴趣的:(Java)