English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
ここでは、サンプルを用いてJava FileReader及其メソッドを学びます。
java.ioパッケージのFileReaderクラスは、ファイルからデータを読み取る(文字単位で)ために使用できます。
それはInputStreamReaderクラスを継承しています。
FileReaderについて学ぶ前に、以下のことを確認してくださいJava ファイル
ファイルリーダーを作成するには、まずjava.io.FileReaderパッケージをインポートする必要があります。パッケージをインポートした後、ここにファイルリーダーを作成する方法があります。
1.ファイル名を使用して
FileReader input = new FileReader(String name);
ここでは、指定されたファイル名にリンクされるファイルリーダーを作成します。
2.ファイルオブジェクトを使用して
FileReader input = new FileReader(File fileObj);
ここでは、ファイルオブジェクトが指定するファイルにリンクされるファイルリーダーを作成します。
上記の例では、ファイル内のデータは特定のデフォルトの文字エンコードで保存されています。
しかし、Java 11ファイル内で文字エンコードの種類を指定することもできます(UTF-8またはUTF-16)
FileReader input = new FileReader(String file, Charset cs);
ここでは、Charsetクラスを使用してファイル読み取りの文字エンコードを指定します。
FileReaderクラスはReaderクラスに存在する異なるメソッドの実装を提供します。
read() - 読み取った単一の文字
read(char[] array) - 読み取った文字を指定された配列に保存します
read(char[] array, int start, int length) - から読み取った長さの文字数をstart位置から指定された配列に格納します
例えば、以下の名前のinput.txtのファイルが含まれています。
This is a line of text inside the file.
ファイルリーダーを使用してファイルを読み取ることを試みましょう。
import java.io.FileReader; class Main { public static void main(String[] args) { //文字配列を作成します char[] array = new char[100]; try { //FileReaderを使用してリーダーを作成します FileReader input = new FileReader("input.txt"); //文字を読み取ります input.read(array); System.out.println("Data in the file: "); System.out.println(array); // 閉じます reader input.close(); } catch(Exception e) { e.getStackTrace(); } } }
出力結果
ファイル内のデータ: This is a line of text inside the file.
上の例では、inputという名前のファイルリーダーを作成しました。ファイルリーダーはファイルinput.txtリンク。
FileInputStream input = new FileInputStream("input.txt");
ファイルからデータを読み取るために、read()メソッドを使用します。
getEncoding()メソッドは、ファイルにデータを格納するために使用されるエンコーディング形式を取得するために使用できます。例えば、
import java.io.FileReader; import java.nio.charset.Charset; class Main { public static void main(String[] args) { try { //デフォルトのエンコーディングでFileReaderを作成します FileReader input1 = new FileReader("input.txt"); //指定されたエンコーディングでFileReaderを作成します FileReader input2 = new FileReader("input.txt", Charset.forName("UTF8")); //ファイルリーダーの文字コードを返します System.out.println("input1の文字コード: " + input1.getEncoding()); System.out.println("input2の文字コード: " + input2.getEncoding()); //閉じます reader input1.close(); input2.close(); } catch(Exception e) { e.getStackTrace(); } } }
出力結果
input1の文字コード: Cp1252 input2の文字コード: UTF8
上記の例では、2のファイルリーダー、それぞれinput1とinput2
input1文字コードが指定されていません。したがって、getEncoding()メソッドはデフォルトの文字コードを返します。
input2指定された文字コードUTF8:したがって、getEncoding()メソッドは指定された文字コードを返します。
注意:Charset.forName()メソッドを使用して指定された文字コードのタイプを指定しました。
ファイルリーダーを閉じるには、close()メソッドを使用できます。close()メソッドを呼び出した後、リーダーでデータを読み取ることができなくなります。
メソッド | 説明 |
---|---|
ready() | ファイルリーダーが読み込む準備ができているかを確認します |
mark() | ファイルリーダーで読み込んだデータの場所をマークします |
reset() | リーダーをリセットし、リーダーに設定されたマークの場所に戻します |