Java 菜鳥(niǎo)教程

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 Reader 類(lèi)

在本教程中,我們將通過(guò)一個(gè)示例了解Java Reader、它的子類(lèi)和它的方法。

java.io包的Reader類(lèi)是一個(gè)抽象超類(lèi),它代表字符流。

由于Reader是抽象類(lèi),因此它本身不起作用。但是,其子類(lèi)可用于讀取數(shù)據(jù)。

Reader子類(lèi)

為了使用的功能Reader,我們可以使用其子類(lèi)。他們之中有一些是:

Java Reader的子類(lèi)是BufferedReader,InputStreamReader,F(xiàn)ileReader和StringReader。

在下一個(gè)教程中,我們將學(xué)習(xí)所有這些子類(lèi)。

創(chuàng)建Reader

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

// 創(chuàng)建 Reader
Reader input = new FileReader();

在這里,我們使用FileReader類(lèi)創(chuàng)建了一個(gè)Reader。這是因?yàn)镽eader是一個(gè)抽象類(lèi)。因此,我們無(wú)法創(chuàng)建Reader的對(duì)象。

注意:我們還可以從的其他子類(lèi)創(chuàng)建ReaderReader。

Reader方法

本Reader類(lèi)提供由它的子類(lèi)實(shí)現(xiàn)的方法不同。以下是一些常用方法:

  • ready() - 檢查Reader是否準(zhǔn)備好讀取

  • read(char[] array)  - 從流中讀取字符并存儲(chǔ)在指定的數(shù)組中

  • read(char[] array, int start, int length)- 從流中讀取length相等的字符數(shù),并從start開(kāi)始存儲(chǔ)在指定的數(shù)組中

  • mark() - 標(biāo)記流中已讀取數(shù)據(jù)的位置

  • reset() - 重置流。如果流已被標(biāo)記,然后嘗試進(jìn)行標(biāo)記,以重新定位。如果該流未被標(biāo)注,然后嘗試將其復(fù)位在適當(dāng)?shù)奶囟鞯囊恍┓椒?,例如通過(guò)將其重新定位到其起始點(diǎn)。

  • skip() -從流中丟棄指定數(shù)量的字符

示例:使用FileReader的Reader

這是我們?nèi)绾问褂肍ileReader類(lèi)實(shí)現(xiàn)Reader的方法。

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

This is a line of text inside the file.

讓我們嘗試使用FileReader(Reader的子類(lèi))讀取此文件。

import java.io.Reader;
import java.io.FileReader;

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

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

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

            //檢查Reader是否準(zhǔn)備就緒 
            System.out.println("流中有數(shù)據(jù)嗎?  " + input.ready());

            //讀取字符
            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ù)嗎?  true
流中的數(shù)據(jù):
This is a line of text inside the file.

在上面的示例中,我們使用FileReader類(lèi)創(chuàng)建了一個(gè)讀取器。Reader與文件input.txt鏈接。

Reader input = new FileReader("input.txt");

為了從input.txt文件讀取數(shù)據(jù),我們已經(jīng)實(shí)現(xiàn)了這些方法。

input.read();       //從reader讀取數(shù)據(jù)
input.close();      //關(guān)閉reader
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清