1. 程式人生 > >Java實用方法整理(二十二)——IO流之字元緩衝流BufferedReader、BufferedWriter

Java實用方法整理(二十二)——IO流之字元緩衝流BufferedReader、BufferedWriter

1,描述

BufferedReader、BufferedWriter是java為了高效傳輸IO字元流而設計的一種緩衝類,用法和FileWriter,FileReader類似。BufferedReader、BufferedWriter只是對FileWriter,FileReader進行了裝飾。

2,案例+原始碼

將原始檔複製到目的地檔案

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
* @author Manduner_TJU
* @version 建立時間:2018年11月7日下午8:02:07
*/
public class TestBuffered {
	public static void main(String[] args) throws IOException{
//		copyFile1("e:\\test.json","g:\\testNew.json");
		copyFile2("e:\\test.json","g:\\testNew.json");
		System.out.println("檔案複製完畢");
	}
	
	//每次一個字元一個字元的複製
	public static void copyFile1(String source, String des) throws IOException{
		//1,封裝資料來源
		BufferedReader br = new BufferedReader(new FileReader(source));
		BufferedWriter bw = new BufferedWriter(new FileWriter(des));
		
		//2,複製檔案
		int ch = 0;
		while((ch = br.read()) != -1) {
			bw.write(ch);
		}
		
		//3,釋放資源
		br.close();
		bw.close();
	}
	
	//每次複製一個字元陣列
	public static void copyFile2(String source, String des) throws IOException{
		//1,封裝資料來源
		BufferedReader br = new BufferedReader(new FileReader(source));
		BufferedWriter bw = new BufferedWriter(new FileWriter(des));
		
		//2,複製檔案
		char[] ch = new char[1024];
		int len = 0;
		while((len = br.read(ch)) != -1) {
			bw.write(ch,0,len);
		}
		
		//3,釋放資源
		br.close();
		bw.close();
	}
}