Java IO流學習總結四:緩沖流-BufferedReader、BufferedWriter


Java IO流學習總結四:緩沖流-BufferedReader、BufferedWriter

轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/54911237
本文出自【趙彥軍的博客】

在上一篇文章中Java IO流學習總結三:緩沖流-BufferedInputStream、BufferedOutputStream介紹了緩沖流中的字節流,而這一篇着重介紹緩沖流中字符流BufferedReaderBufferedWriter

  • 類的繼承關系
Reader
|__ BufferedReader、StringReader、InputStreamReader
                                      |__ FileReader
                         
Writer
|__ BufferedWriter、StringWriter、OutputStreamWriter
                                      |__ FileWriter
                         

BufferedReader

  • 構造函數

BufferedReader(Reader in, int sz) //創建一個使用指定大小輸入緩沖區的緩沖字符輸入流。 

BufferedReader(Reader in) //創建一個使用默認大小輸入緩沖區的緩沖字符輸入流。

  • 方法
int  read()  //讀取單個字符。
int  read(char[] cbuf, int off, int len)  //將字符讀入數組的某一部分。
String  readLine()  //讀取一個文本行。
boolean	 ready()  //判斷此流是否已准備好被讀取。
void  reset()  //將流重置到最新的標記。
long  skip(long n)  //跳過字符。
void  close() //關閉該流並釋放與之關聯的所有資源。
void  mark(int readAheadLimit) //標記流中的當前位置。
boolean  markSupported() //判斷此流是否支持 mark() 操作(它一定支持)。

BufferedWriter

  • 構造函數
BufferedWriter(Writer out, int sz) //創建一個使用給定大小輸出緩沖區的新緩沖字符輸出流。

BufferedWriter(Writer out) //建一個使用默認大小輸出緩沖區的緩沖字符輸出流。

  • 方法
void  close()  // 關閉此流,但要先刷新它。
void  flush()  //刷新該流的緩沖。
void  newLine() //寫入一個行分隔符。
void  write(char[] cbuf, int off, int len) //寫入字符數組的某一部分。
void  write(int c) //寫入單個字符。
void  write(String s, int off, int len) //寫入字符串的某一部分。

實戰演練
復制F盤里面的一個txt文本

package com.app;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;

public class A4 {
	public static void main(String[] args) {

		String filePath = "F:/123.txt" ;
		String filePath2 = "F:/abc.txt" ;

		File file = new File( filePath ) ;
		File file2 = new File( filePath2 ) ;
		copyFile( file , file2 );
	}

	private static void copyFile( File oldFile , File newFile ){
		Reader reader = null ;
		BufferedReader bufferedReader = null ;

		Writer writer = null ;
		BufferedWriter bufferedWriter  = null ;
		try {
			reader = new FileReader( oldFile ) ;
			bufferedReader = new BufferedReader( reader ) ;

			writer = new FileWriter( newFile ) ;
			bufferedWriter = new BufferedWriter( writer ) ;

			String result = null ; //每次讀取一行的內容
			while (  (result = bufferedReader.readLine() ) != null ){
				bufferedWriter.write( result );  //把內容寫入文件
				bufferedWriter.newLine();  //換行,result 是一行數據,所以沒寫一行就要換行 
			}

			bufferedWriter.flush();  //強制把數組內容寫入文件

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}catch (IOException e) {
			e.printStackTrace();
		}finally {
			try {
				bufferedWriter.close();  //關閉輸出流
			} catch (IOException e) {
				e.printStackTrace();
			}

			try {
				bufferedReader.close();  //關閉輸入流
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}


運行結果:
這里寫圖片描述


個人微信號:zhaoyanjun125 , 歡迎關注


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM