Java面向对象
Java异常
Java数组
Java常用类
Java集合
Java IO流
Java线程
Java反射
Socket编程
Java注解开发
Java GoF设计模式
HashMap
Java内存模型
Java线性表

Java缓冲字符输入输出流

字符缓冲流

默认有8192字符大小的缓冲区

package com.wkcto.chapter06.readerwriter;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilterWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

/**
 * BufferedReader/BufferedWriter
 * 	字符缓冲流, 对其他字符流进行缓冲, 默认缓冲区大小为8192个字符
 * @author 蛙课网
 *
 */
public class Test05 {

	public static void main(String[] args) throws IOException {
		//1) 使用缓冲字符流读取文件的内容
//		readData();
		//2) 使用缓冲字符流保存数据到文件中
		writeData();
	}
	
	//2) 使用缓冲字符流保存数据到文件中
	private static void writeData() throws IOException {
		FileWriter  fw = new FileWriter("d:/def.txt");
		BufferedWriter bw = new BufferedWriter(fw);
		
		//把数组保存到缓冲流的缓冲区中
		bw.write("hello");
		bw.newLine();
		bw.write("wkcto");
		
		//从键盘上输入数据保存到文件中
//		Scanner sc = new Scanner(System.in);
		//System.in代表系统的标准输入设备,即键盘,  System类的in字段是InputStream字节流
//		String line = sc.nextLine(); 		//从键盘上读取一行
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String line = br.readLine();
		while( line.length() > 0 ){
			bw.write(line);
			bw.newLine();
//			line = sc.nextLine();
			line = br.readLine();
		}
		
		bw.close(); 		//关闭缓冲流时,会把缓冲区的数据保存到文件中
		
	}
	//1) 使用缓冲字符流读取文件的内容
	private static void readData() throws IOException {
		//创建字符流, d:/test.java文件, 该文件编码为utf-8,与当前环境编码一致
//		FileReader fr = new FileReader("d:/test.java");
		//创建字符流, d:/test01.java文件, 该文件编码为GBK,与当前环境编码不一致
		InputStreamReader fr = new InputStreamReader(new FileInputStream("d:/test01.java"), "GBK");
		//对字符流进行缓冲
		BufferedReader br = new BufferedReader(fr);
		
		//从缓冲字符流中读取数据, readLine()从输入缓冲字符流中读取一行, 读到文件末尾返回null
		String line = br.readLine();
		while( line != null ){
			System.out.println( line);
			line = br.readLine();
		}
		
		br.close();
	}

}

 

全部教程