字符緩沖流
默認有8192字符大小的緩沖區(qū)
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
* 字符緩沖流, 對其他字符流進行緩沖, 默認緩沖區(qū)大小為8192個字符
* @author 蛙課網(wǎng)
*
*/
public class Test05 {
public static void main(String[] args) throws IOException {
//1) 使用緩沖字符流讀取文件的內(nèi)容
// readData();
//2) 使用緩沖字符流保存數(shù)據(jù)到文件中
writeData();
}
//2) 使用緩沖字符流保存數(shù)據(jù)到文件中
private static void writeData() throws IOException {
FileWriter fw = new FileWriter("d:/def.txt");
BufferedWriter bw = new BufferedWriter(fw);
//把數(shù)組保存到緩沖流的緩沖區(qū)中
bw.write("hello");
bw.newLine();
bw.write("wkcto");
//從鍵盤上輸入數(shù)據(jù)保存到文件中
// Scanner sc = new Scanner(System.in);
//System.in代表系統(tǒng)的標準輸入設備,即鍵盤, System類的in字段是InputStream字節(jié)流
// 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(); //關閉緩沖流時,會把緩沖區(qū)的數(shù)據(jù)保存到文件中
}
//1) 使用緩沖字符流讀取文件的內(nèi)容
private static void readData() throws IOException {
//創(chuàng)建字符流, d:/test.java文件, 該文件編碼為utf-8,與當前環(huán)境編碼一致
// FileReader fr = new FileReader("d:/test.java");
//創(chuàng)建字符流, d:/test01.java文件, 該文件編碼為GBK,與當前環(huán)境編碼不一致
InputStreamReader fr = new InputStreamReader(new FileInputStream("d:/test01.java"), "GBK");
//對字符流進行緩沖
BufferedReader br = new BufferedReader(fr);
//從緩沖字符流中讀取數(shù)據(jù), readLine()從輸入緩沖字符流中讀取一行, 讀到文件末尾返回null
String line = br.readLine();
while( line != null ){
System.out.println( line);
line = br.readLine();
}
br.close();
}
}