【Java】FileReaderクラスを使ってテキストファイルを読み込む!
テキストファイルを読み込むにはFileReaderクラスを使用します。
FileReaderクラスは、テキストファイルを読み込むクラスとなります。
そのため、BufferedReaderクラスをセットで使用すると、読み込み処理の効率が上がるので、FileReaderクラスを使用する場合はBufferedReaderクラスを組み合わせて使用しましょう。
今回はFileReaderクラスを使って、テキストファイルの読み込みを行います。
また、Java7から使用できるようになったFileクラスのreadAllLinesメソッドを使って、テキストファイルを読み込む方法についても紹介していきます。
目次
FileReaderクラスとは
FileReaderクラスとは、テキストファイルを読み込むためのクラスで、テキストファイルの内容を元にした処理などを行うために使用します。
また、ファイルは文字のストリームで読み込まれます。
FileReaderクラスの書き方
FileReaderクラスの構文は下記となります。
1 2 |
import java.io.BufferedReader; import java.io.FileReader; |
FileReaderクラスをインポートすることで、FileReaderクラスで準備されているメソッドが使用できるようになります。
また、BufferedReaderクラスを使用すると、読み込み処理の効率が上がるので、FileReaderクラスを使用する場合はBufferedReaderクラスもインポートしておきましょう。
テキストファイルを読み込むサンプルコード
ファイル/ディレクトリの名前を変更するサンプルコードを紹介します。
Reader.txtは、「C:¥study」以下に用意します。
そして、Main.javaを実行します。
Reader.txt
1 2 3 |
・北海道、東北地方 北海道 青森県岩手県秋田県宮城県山形県福島県 |
Main.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// テキストファイルを読み込む import java.io.BufferedReader; import java.io.FileReader; public class Main { public static void main(String[] args) throws Exception { // 読み込んだ値を保持する変数 String valHold; // バッファを使用した入力ストリームを作成 BufferedReader input = new BufferedReader( new FileReader("c:/work/Reader.txt")); // 入力ストリームから行単位で読み込みを行う while ((valHold = input.readLine()) != null) { //読み込んだ内容を表示する System.out.println(valHold); } // 入カストリームを閉じる input.close(); } } |
出力結果
・北海道、東北地方
北海道
青森県岩手県秋田県宮城県山形県福島県
FileReaderクラスのreadLineメソッドによって「Reader.txt」の内容が読み込まれます。
NIO.2(Filesクラス)でテキストファイルを読み込む場合
NIO.2とはJava7で導入された「java.nio.file」パッケージとそのサブパッケージとを合わせたものであり、NIO.2のFilesクラスを使用することでとても簡単にファイル処理を行うことができます。
そのため、Filesクラスでテキストファイルを読み込むにはreadAllLinesメソッドを使用します。
readAllLinesメソッドは第1パラメータに読み込み元のパスを、第2パラメータに文字コードを指定すると、テキストファイルをすべて読み込み、1行を1要素として格納した「List
なお、第2パラメータは省略可能です。
Reader.txt
1 2 3 |
・北海道、東北地方 北海道 青森県岩手県秋田県宮城県山形県福島県 |
Main.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// Files.readAllLinesを使ってテキストファイルを読み込む import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; public class Main { public static void main(String[] args) throws Exception { // 入力ファイル Path path = Paths.get("C:/study/Reader.txt"); // 入力ファイルから読み込みを行う List<String> list = Files.readAllLines( path, Charset.defaultCharset()); // 読み込んだ内容を表示する for (String input:list) { System.out.println(input); } } } |
出力結果
・北海道、東北地方
北海道
青森県岩手県秋田県宮城県山形県福島県
今回のポイント
FileReaderでテキストファイルを読み込む
テキストファイルを読み込むにはFileReaderクラスを使用する。
⚫︎ 「FileReader」クラスを使用することで、テキストファイルからデータを読み込む
⚫︎ FileReaderクラスを使用する場合は、読み込み処理の効率を上げるために「BufferedReader」クラスを使用と一緒に使用してバッファリングしながら読み込む
⚫︎ FileReaderクラスをラップする形でBufferedReaderクラスを作成し、BufferedReaderクラスのrendLineメソッドを呼び出すことで、行単位で読み込むことができ、ファイルの終端まで読み込んでさらに読み込もうとすると、readLineメソッドでは「null」を返す
⚫︎ テキストファイルからデータを読み込むには、最後にBufferedReaderクラスのcloseメソッドを呼び出し、「BufferedReader」インスタンス、「FileReader」インスタンスのリソースを解放する
⚫︎ FilesクラスのreadAllLinesメソッドをでもテキストファイルを読み込むことができる
関連記事
FileWriterクラスを使ってテキストファイルを書き込む方法についてはこちらをご参考ください。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。