Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java BufferedWriter 類

在本教程中,我們將借助示例學(xué)習(xí)Java BufferedWriter及其方法。

java.io包的BufferedWriter類可以與其他寫入器一起使用,以更有效地寫入數(shù)據(jù)(以字符為單位)。

它繼承了抽象類Writer。

BufferedWriter類是Java Writer的子類。

BufferedWriter的工作方式

BufferedWriter維護(hù)一個內(nèi)部的8192個字符緩沖器。

在寫操作期間,字符將被寫入內(nèi)部緩沖區(qū)而不是磁盤。 一旦緩沖區(qū)被填充或關(guān)閉寫入器,緩沖區(qū)中的所有字符將被寫入磁盤。

因此,減少了與磁盤的通信次數(shù)。這就是為什么使用BufferedWriter寫入字符更快的原因。

創(chuàng)建一個BufferedWriter

為了創(chuàng)建一個BufferedWriter,我們必須首先導(dǎo)入java.io.BufferedWriter包。導(dǎo)入包后,就可以創(chuàng)建緩沖的寫入器了。

//創(chuàng)建 FileWriter
FileWriter file = new FileWriter(String name);

//創(chuàng)建 BufferedWriter
BufferedWriter buffer = new BufferedWriter(file);

在上面的示例中,我們創(chuàng)建了名為buffer的BufferedWriter和名為file的FileWriter。

此處,BufferedWriter的內(nèi)部緩沖區(qū)的默認(rèn)大小為8192個字符。 但是,我們也可以指定內(nèi)部緩沖區(qū)的大小。

//創(chuàng)建一個具有指定大小的內(nèi)部緩沖區(qū)的BufferedWriter
BufferedWriter buffer = new BufferedWriter(file, int size);

緩沖區(qū)將有助于更有效地將字符寫入文件。

BufferedWriter的方法

BufferedWriter類提供Writer中存在的不同方法的實(shí)現(xiàn)。

write()方法

  • write() - 將單個字符寫入寫入器的內(nèi)部緩沖區(qū)

  • write(char[] array) - 將指定數(shù)組中的字符寫入寫入器

  • write(String data) - 將指定的字符串寫入寫入器

示例:將數(shù)據(jù)寫入文件的BufferedWriter

import java.io.FileWriter;
import java.io.BufferedWriter;

public class Main {

  public static void main(String args[]) {

    String data = "This is the data in the output file";

    try {
      //創(chuàng)建 FileWriter
      FileWriter file = new FileWriter("output.txt");

      //創(chuàng)建 BufferedWriter
      BufferedWriter output = new BufferedWriter(file);

      //將字符串寫入文件
      output.write(data);

      //關(guān)閉 writer
      output.close();
    }

    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

在上面的示例中,我們創(chuàng)建了一個名為output的緩沖寫入器和文件寫入器。緩存的寫入器與output.txt文件鏈接。

FileWriter file = new FileWriter("output.txt");
BufferedWriter output = new BufferedWriter(file);

要將數(shù)據(jù)寫入文件,我們使用了write()方法。

在這里,當(dāng)我們運(yùn)行程序時,output.txt文件將填充以下內(nèi)容。

This is a line of text inside the file.

flush()方法

要清除內(nèi)部緩沖區(qū),我們可以使用flush()方法。 此方法強(qiáng)制編寫器將緩沖區(qū)中存在的所有數(shù)據(jù)寫入目標(biāo)文件。

例如,假設(shè)我們有一個名為output.txt的空文件。

import java.io.FileWriter;
import java.io.BufferedWriter;

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

    String data = "This is a demo of the flush method";

    try {
      //創(chuàng)建 FileWriter
      FileWriter file = new FileWriter(" flush.txt");

      //創(chuàng)建 BufferedWriter
      BufferedWriter output = new BufferedWriter(file);

      //將數(shù)據(jù)寫入文件
      output.write(data);

      //將數(shù)據(jù)刷新到目標(biāo)
      output.flush();
      System.out.println("數(shù)據(jù)被刷新到文件中。");

      output.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

輸出結(jié)果

數(shù)據(jù)被刷新到文件中。

當(dāng)我們運(yùn)行程序時,文件output.txt被字符串?dāng)?shù)據(jù)表示的文本填充。

close()方法

要關(guān)閉緩沖的writer,我們可以使用close()方法。一旦調(diào)用了close()方法,就不能使用writer寫入數(shù)據(jù)。

BufferedWriter的其他方法

方法描述
newLine()向作者插入新行
append()將指定字符插入當(dāng)前寫入器
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清