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

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

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

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

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

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

なお、Javaの記事については、こちらにまとめています。

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でテキストファイルを読み込む
更新日:2023年3月21日

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でファイルを読み込む方法
更新日:2023年3月21日

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

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

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

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

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

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

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

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

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

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

【何から学べばいいかわからない…そんな悩みを解決します!】

完全無料ですぐわかる「プログラミング学習プラン診断」

・適性にあわせて学習プランを診断
・完全無料で気軽に診断できる
・学習の悩みもまるっと解決

さっそく診断してみる

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

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

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

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

まとめ

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

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

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

プログラミング学習中、
誰かへ相談したいことはありませんか?

SAMURAI TERAKOYA

プログラミングはエラーの連続。作業を進めるなかで誰かに教えてほしい場面は多いですよね。

そんな悩みを解決できるのが、侍テラコヤです。登録無料で始められて、現役エンジニアとオンラインで相談できるほか、回答率100%のQA掲示版でプログラミングに関する悩みを解決します!

気になる方はぜひ詳細をご覧ください。

→侍テラコヤの詳細をみる

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

連絡先はこちらです。
ntakeshi@sejuku.net

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close