Java高效緩沖字符輸入輸出流BufferedReader和BufferedWriter


BufferedReader和BufferedWriter都分別是Reader和Writer的子類,構造器中參數要求傳入是Reader和Writer下的子類就行,如

new BufferedReader(new FileReader("IOTest.java"));

FileReader就是Reader的一個子孫類
 

 



 
 

1. 用BufferedReader讀取一個文件內容然后輸出到控制台

使用readLine()讀取一行
readLine() 例子:

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

public class BufferReaderDemo1 {

    public static void main(String[] args) {
        BufferedReader reader = null;
        try {
            //創建一個高效緩存字符輸入流對象 路徑隨意更改
            reader = new BufferedReader(new FileReader("CopyDemo1.java"));
            String line = null;
            //讀取每一行
            while((line = reader.readLine()) != null){
                //打印一行
                System.out.println(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            //關閉外層的對象的時候,內層的資源會自動被關閉
            if(reader != null){
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 
 

2. 用BufferedReader和BufferedWriter讀取一個文件內容然后寫到另一個文件(copy過去)

import java.io.*;

public class CopyTest {

    public static void main(String[] args) {
        BufferedReader reader = null;
        BufferedWriter writer = null;
        try {
            //創建高效緩沖輸入流 路徑隨意
            reader = new BufferedReader(new FileReader("src/cn/demo/IOTest.java"));
            //創建高效緩沖輸出流  路徑隨意
            writer = new BufferedWriter(new FileWriter("IOTest.java"));
            //創建一個讀取一行的變量
            String line = null;
            while((line = reader.readLine()) != null){
                //把讀入的這一行數據寫入到高效緩沖字符輸出流里面
                writer.write(line);
                //換行
                writer.newLine();
                //刷新緩存
                writer.flush();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if(writer != null){
                    writer.close();
                }
                if(reader != null){
                    reader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}


免責聲明!

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



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