Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java BufferedReader 類

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

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

它繼承了抽象類Reader。

BufferedReader類是Java Reader的子類。

BufferedReader的工作方式

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

在BufferedReader中進(jìn)行讀取操作期間,將從磁盤讀取一部分字符并將其存儲在內(nèi)部緩沖區(qū)中。 并且從內(nèi)部緩沖區(qū)中單獨讀取字符。

因此,減少了與磁盤的通信次數(shù)。這就是使用BufferedReader可以更快地讀取字符的原因。

創(chuàng)建一個BufferedReader

為了創(chuàng)建一個BufferedReader,我們必須首先導(dǎo)入java.io.BuferedReader包。導(dǎo)入軟件包后,就可以創(chuàng)建閱讀器。

//創(chuàng)建一個FileReader
FileReader file = new FileReader(String file);

//創(chuàng)建一個BufferedReader
BufferedReader buffer = new BufferedReader(file);

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

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

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

緩沖區(qū)將有助于更快地從文件中讀取字符。

BufferedReader的方法

BufferedReader類為Reader中的不同方法提供了實現(xiàn)。

read()方法

  • read() - 從閱讀器的內(nèi)部緩沖區(qū)讀取單個字符

  • read(char[] array) - 從閱讀器讀取字符并將其存儲在指定的數(shù)組中

  • read(char[] array, int start, int length)- 從閱讀器讀取等于length字符的數(shù)量,并從start位置開始存儲在指定的數(shù)組中

例如,假設(shè)我們有一個名為input.txt的文件,其中包含以下內(nèi)容。

This is a line of text inside the file.

讓我們嘗試使用BufferedReader讀取文件。

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

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

    //創(chuàng)建一個字符數(shù)組
    char[] array = new char[100];

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

      //創(chuàng)建 BufferedReader
      BufferedReader input = new BufferedReader(file);

      //讀取字符
      input.read(array);
      System.out.println("文件中的數(shù)據(jù): ");
      System.out.println(array);

      //關(guān)閉 reader
      input.close();
    }

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

輸出結(jié)果

文件中的數(shù)據(jù):
This is a line of text inside the file.

在上面的示例中,我們創(chuàng)建了一個名為input的緩沖讀取器。緩沖的閱讀器與input.txt文件鏈接。

FileReader file = new FileReader("input.txt");
BufferedReader input = new BufferedReader(file);

在這里,我們使用read()方法從緩沖讀取器的內(nèi)部緩沖區(qū)中讀取字符數(shù)組。

skip()方法

要丟棄和跳過指定數(shù)量的字符,可以使用skip()方法。例如

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

public class Main {

  public static void main(String args[]) {

    //創(chuàng)建一個字符數(shù)組
    char[] array = new char[100];

    try {
      //假設(shè)input.txt文件包含以下文本
      //This is a line of text inside the file.
      FileReader file = new FileReader("input.txt");

      //創(chuàng)建 BufferedReader
      BufferedReader input = new BufferedReader(file);

      //跳過5個字符
      input.skip(5);

      //讀取字符
      input.read(array);

      System.out.println("跳過5個字符后的數(shù)據(jù):");
      System.out.println(array);

      //關(guān)閉 reader
      input.close();
    }

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

輸出結(jié)果

跳過5個字符后的數(shù)據(jù):
is a line of text inside the file.

在上面的示例中,我們使用了skip()方法從文件讀取器中跳過5個字符。因此,字符'T','h','i','s'和' '從原始文件跳過。

close()方法

要關(guān)閉緩沖的讀取器,我們可以使用close()方法。調(diào)用close()方法后,我們將無法使用讀取器讀取數(shù)據(jù)。

BufferedReader的其他方法

方法描述
ready()檢查文件閱讀器是否準(zhǔn)備好閱讀
mark()標(biāo)記讀取器中已讀取數(shù)據(jù)的位置
reset()重置標(biāo)記,返回到閱讀器中設(shè)置標(biāo)記的位置
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清