【初心者のためのJava入門】ファイルを読み込む4つの方法を解説

Javaでファイルを読み込むにはどうすればいいの?
FileReader、FileInputStreamクラスとかあるけどどうやって使うの?
プロパティファイルを読み込むにはどうすればいいの?
エンコードを指定して読み込むにはどうすればいいの?

Javaではテキストファイルや画像を読み込んだり、プロパティファイル、文字コードを指定する方法など、ファイルを操作のためのクラスが用意されています。しかし、初心者にとってはファイルを読み込むにもいろいろ方法があったり、長ったらしい記述が必要で方法がよくわからない方も多いのではないでしょうか?

そこで、この記事ではファイルを読み込む4つの手順をそれぞれわかりやすく解説していきます。

  • 【基礎】FileReaderクラスでファイルを読み込む方法
  • 【基礎】FileInputStreamクラスでファイルを読み込む方法
  • 【発展】プロパティファイルを読み込む方法
  • 【発展】ファイルのエンコードを指定して読み込む方法

今回はそんなファイルの読み込み方法をわかりやすく解説します!

Javaでファイルを読み込む4つの方法

ここではJavaでファイルを読み込む方法について、用途別に4つの方法を解説していきます。

FileReaderクラスで読み込む方法

FileReaderクラスとは

ファイルを読み込む基本的な方法として、FileRederクラスがあります。

FileRederクラスは、まずFileクラスのオブジェクト生成時にコンストラクタの引数に読み込むファイルを指定します。次にFileReaderクラスのオブジェクト生成時に、コンストラクタの引数にFileクラスのオブジェクトを指定します。

File file = new File("ファイル名");
FileReader filereader = new FileReader(file);

FileReaderクラスは、Fileクラスのオブジェクトを引数に指定したオブジェクトを生成すれば、ファイル読み込みの準備は完了です。

ファイル読み込み時の注意点として、指定したファイルが存在しなかった場合、FileNotFoundExceptionの例外が発生します。

そのため、例外処理やFileクラスのexistsメソッドで、予めファイルの存在有無を確認してからファイルを読み込むようにしましょう。

FileReaderクラスの使い方

ここでは、実際にfilereaderクラスを使用して、ファイルを1文字ずつ読み込む方法を紹介します。

読み込むファイルは、予め任意のディレクトリに用意しておきます。

import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class Main {
 
    public static void main(String[] args) {
        try {
            //Fileクラスに読み込むファイルを指定する
            File file = new File("/Users/Shared/java/java.txt");
            
            //ファイルが存在するか確認する
            if(file.exists()) {
                
                //FileReaderクラスのオブジェクトを生成する
                FileReader filereader = new FileReader(file);
                
                //filereaderクラスのreadメソッドでファイルを1文字ずつ読み込む
                int data;
                while((data = filereader.read()) != -1) {
                    System.out.print((char) data);
                }
                
                //ファイルクローズ
                filereader.close();
                
            } else {
                System.out.print("ファイルは存在しません");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

実行結果:

SAMURAI
ENGINEER

ファイルを1文字ずつ読み込むことができました!

ここで紹介したFileReaderクラスやBufferedReaderクラスのreadLineメソッドを使用して、ファイルを1行ずつ読み込む方法については、以下の記事で詳しく解説しています。

【Java】FileReader、BufferedReaderでテキストファイルを読み込む
更新日 : 2019年5月28日

FileInputStreamでbyte文字を読み込む方法

FileInputStreamとは

FileInputStreamクラスとは、ファイルの読み込みや書き込み、ファイルの作成などのさまざまなファイル操作を行うためのクラスです。

FileInputStreamクラスは、オブジェクト生成時にコンストラクタの引数にファイル名を指定します。

FileInputStream fs = new FileInputStream("ファイル名");

FileInputStreamクラスを使用すると、ファイルの内容はバイトストリームで読み込まれます。

FileInputStreamの使い方

以下にFileInputStreamクラスを使用して、ファイルをバイトストリームで読み込む方法を紹介します。

使用するファイルには”java”と記述しています。

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
 
    public static void main(String[] args) {
        try {
            //読み込むファイルを指定
            FileInputStream fs = new FileInputStream("/Users/Shared/java/java.txt");
            InputStreamReader isr = new InputStreamReader(fs, "UTF-8");
            
            //InputStreamReaderクラスのreadメソッドでファイルを1文字ずつ読み込む
            int data;
            while((data = isr.read()) != -1) {
                System.out.println(data);
            }
            isr.close();
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

実行結果:

106
97
118
97
10

ファイルをバイト文字で読み込むことができました!

紹介したFileInputStreamクラスの詳細や、バイトストリームを文字に変換する方法などについては、以下の記事で詳しく解説しています!

【Java入門】FileInputStreamでファイルを読み込む方法
更新日 : 2018年11月13日

プロパティファイルを読み込む方法

プロパティファイルとは、Javaプログラムで使用する定数や既定値、プログラムから読み込むファイルのパスなどの必要な情報を記載しておくためのファイルです。

プロパティファイルを活用することで、定数や既定値、ファイルパスの内容に変更が生じた場合も、プログラムを直接編集せずにファイルのみの変更で対応することが可能です。

そんなプロパティファイルの作成方法や読み込み方法については、以下の記事で詳しく解説しています!

【Java入門】プロパティファイルの読み込み方法(Properties)
更新日 : 2019年4月24日

ファイルの文字コード指定

ファイルに記述されている文字列は使用するプラットフォームによって、文字コードが異なる場合があります。使用する環境によって適切に文字列を文字コード化する作業のことを、エンコーディングといいます。

例えば、Windowsで作成したプログラムをLinuxなどのOSで動かした場合、日本語などの文字列が文字化けしてしまう可能性があります。そのため、異なるOSやプラットフォームでは、環境に合わせてエンコーディングを行う必要があります。

エンコーディングを確認する方法、ファイルの文字コードを指定・読み込み・変更する方法については、以下の記事で詳しく解説しています!

【Java】encodingを指定して読み書きする(CSV、テキストファイル)
更新日 : 2019年10月23日

ファイルの書き込み方法について知りたい方へ

ここでは、ファイルの読み込み方法についてご紹介しています。

ファイルの書き込み方法については、こちらで詳しく解説していますのでぜひ参考にして下さいね。

Javaでファイルに書き込み・出力する(新規/上書き/追記/文字コード)
更新日 : 2019年10月14日

まとめ

ここでは、Javaでファイルを読み込むための基本的な方法や、プロパティファイルの作成・読み込む方法、ファイルのエンコーディングを指定して読み込む方法などについて紹介しました。

実際のシステムでファイルを読み込む処理はよく使用しますので、ぜひ覚えておきましょう。

もし、Javaでファイルを読み込む方法を忘れてしまったら、この記事を思い出してくださいね。

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説