English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基础教程

Java 流程制御

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 例外処理

Java 列表(List)

Java Queue(キュー)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java その他のトピック

Java Reader クラス

このチュートリアルでは、Java Reader、そのサブクラス、およびそのメソッドについての例を通じて学びます。

java.ioパッケージのReaderクラスは、文字ストリームを表す抽象スーパークラスです。

Readerは抽象クラスであるため、それ自体は作用しません。しかし、そのサブクラスはデータの読み取りに使用できます。

Readerサブクラス

使用機能するReaderのために、そのサブクラスを使用することができます。その中には以下のようなものがあります:

次のチュートリアルでは、これらのサブクラスすべてについて学びます。

Readerの作成

Readerを作成するために、まずjava.io.Readerパッケージをインポートする必要があります。パッケージをインポートした後、Readerを作成できます。

// Readerの作成
Reader input = new FileReader();

ここでは、FileReaderクラスを使用してReaderを作成しています。これは、Readerが抽象クラスであるため、Readerのオブジェクトを作成することができません。

注意:他のサブクラスからReaderReaderを作成することもできます。

Readerメソッド

このReaderクラスは、そのサブクラスによって実装されるメソッドが異なります。以下は、常用のメソッドの一部です:

  • ready(); - Readerが読み取り準備ができているか確認します

  • read(char[] array)  - ストリームから文字を読み取り、指定された配列に格納します

  • read(char[] array, int start, int length)- ストリームからlengthと同じ数の文字を読み取り、startから指定された配列に格納します

  • mark(); - ストリーム中に読み取ったデータの場所をマークします

  • reset(); - ストリームをリセットします。ストリームがマークされた場合、再マークして再定位を試みます。ストリームがマークされていない場合、適切な特定のストリームの方法でリセットを試みます。例えば、スタートポイントに再定位します。

  • skip(); -指定された数の文字をストリームから捨てます

例:FileReaderのReaderの使用

これはFileReaderクラスを使用してReaderのメソッドを実現する方法です。

仮に、input.txtのファイルに以下の内容が含まれています。

ファイル内のテキスト行です。

让我们尝试使用FileReader(Readerのサブクラス)でこのファイルを読み取ります。

import java.io.Reader;
import java.io.FileReader;
class Main {
    public static void main(String[] args) {
        // 文字配列を作成します
        char[] array = new char[100];
        try {
            //FileReaderを使用してReaderを作成します
            リンク。
            //Readerが準備ができているか確認します 
            System.out.println("流にデータはありますか?  "); + input.ready());
            //文字を読み取ります
            input.read(array);
            System.out.println("流中的データ:");
            System.out.println(array);
            // readerを閉じる
            input.close();
        }
        catch(Exception e) {
            e.getStackTrace();
        }
    }
}

出力結果

ストリームにデータはありますか? true
ストリーム内のデータ:
ファイル内のテキスト行です。

ファイル内のテキスト行です。input.txt上記の例では、FileReaderクラスを使用してリーダーを作成しました。リーダーはファイルと

リンク。

Reader input = new FileReader("input.txt"); からinput.txtファイルからのデータ読み取り、これらのメソッドを実現しました。

input.read();       //readerからデータを読み取る
input.close();      //readerを閉じる