首頁 > 軟體

Java中BufferedReader和BufferedWriter使用方式

2022-06-15 18:02:53

FileWriter/FileReader

介紹:FileWriter 類從 OutputStreamWriter 類繼承而來。該類按字元向流中寫入資料。

構造:引數為 File 物件

FileWriter(File file)

引數是檔案的路徑及檔名(預設是當前執行檔案的路徑)

FileWrite(String filename)

等價於:

OutputStreamWriter out = new OutputStreamWriter(
	new FileOutputStream(File file))

方法:

序號方法描述
1public void write(int c) throws IOException 寫入單個字元c。
2public void write(char [] c, int offset, int len) 寫入字元陣列中開始為offset長度為len的某一部分。
3public void write(String s, int offset, int len) 寫入字串中開始為offset長度為len的某一部分。

栗子:

public class Main {
    public static void main(String[] args) throws Exception {
        File file = new File("d:/abc/f10");
        // 建立檔案
        file.createNewFile();
        // creates a FileWriter Object
        FileWriter writer = new FileWriter(file);
        // 向檔案寫入內容
        writer.write("Thisn isn ann examplen");
        writer.flush();
        writer.close();
        // 建立 FileReader 物件
        FileReader fr = new FileReader(file);
        char[] a = new char[50];
        fr.read(a); // 從陣列中讀取內容
        for (char c : a)
            System.out.print(c); // 一個個列印字元
        fr.close();
    }
}

執行程式會在 D 盤 abc 資料夾下建立 f10,同時列印內容如下:

BufferedReader/BufferedWriter

介紹:BufferedReader 類從字元輸入流中讀取文字並緩衝字元,以便有效地讀取字元,陣列和行。

可以通過建構函式指定緩衝區大小也可以使用預設大小。對於大多數用途,預設值足夠大。

由 Reader 構成的每個讀取請求都會導致相應的讀取請求由基礎字元或位元組流構成,建議通過 BufferedReader 包裝 Reader 的範例類以提高效率。(Reader 構成的物件是字元物件,每次的讀取請求都會涉及到位元組讀取解碼字元的過程,而 BufferedReader 類中有設計減少這樣的解碼次數的方法,進而提高轉換效率)

建立物件:

BufferedReader in  = new BufferedReader(new FileReader(「foo.in」));

方法BufferedReader 由 Reader 類擴充套件而來,提供通用的緩衝方式文字讀取,而且提供了很實用的readLine(),讀取一個文字行,從字元輸入流中讀取文字,緩衝各個字元,從而提供字元、陣列和行的高效讀取。

readLine()讀取一行字串,不含末尾換行符,讀取結束再讀取返回 null。

栗子1:寫入

BufferedWriter bufw = new BufferedWriter(new FileWriter("d:/abc/f11"));
bufw.write("This");
bufw.newLine();
bufw.newLine();
bufw.write("is");
bufw.write("an");
bufw.write("example");
//使用緩衝區中的方法,將資料重新整理到目的地檔案中去。
bufw.flush();
//關閉緩衝區,同時關閉了fw流物件
bufw.close();

執行結果會在 D 盤 abc 資料夾下新建 f11 檔案

栗子2:讀取

//相接的字元流,只要讀取字元,都要做編碼轉換
        //只要使用字元流,必須要有轉換流
        BufferedReader in = new BufferedReader(
                new InputStreamReader(
                        new FileInputStream("d:/abc/f11")));

        String line;
        while ((line = in.readLine()) != null) {
            System.out.println(line);
        }
        in.close();

執行結果:

到此這篇關於Java中BufferedReader和BufferedWriter使用方式的文章就介紹到這了,更多相關Java BufferedReader內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com