程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java IO流學習總結四:緩沖流-BufferedReader、BufferedWriter

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

編輯:關於JAVA

Java IO流學習總結四:緩沖流-BufferedReader、BufferedWriter。本站提示廣大學習愛好者:(Java IO流學習總結四:緩沖流-BufferedReader、BufferedWriter)文章只能為提供參考,不一定能成為您想要的結果。以下是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 , 歡送關注




  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved