【Java入門】FileInputStreamでファイルを読み込む方法

こんにちは!エンジニアの中沢です。

Javaにはファイルの読み込みを行うFileInputStreamクラスがあります。

この記事では、

・FileInputStreamクラスとは
・FileInputStreamクラスの使い方
・FileInputStreamクラスのreadメソッド

という基本的な内容から、

・バイトストリームから文字に変換する方法
・文字エンコードをUTF-8などに指定する方法

などの応用的な使い方に関しても解説していきます。

今回はこれらの方法を覚えるために、FileInputStreamクラスのさまざまな使い方をわかりやすく解説します!

FileInputStreamクラスとは

初めにFileInputStreamクラスについて解説します。

FileInputStreamクラスはファイルを読み込み、ファイルの内容を元にした処理や、新しいファイルの作成などを行うために使います。

FileInputStreamクラスを使うと、ファイルはバイトストリームで読み込まれます。
文字ストリームで読み込みたい場合はFileReaderクラスを使用してください。

ファイルをバイトストリームで読み込む方法

ここではファイルをバイトストリームで読み込む方法を解説します。

初めにFileInputStreamクラスのコンストラクタの引数に読み込むファイルのパスを指定します。

次にInputStreamReaderクラスのコンストラクタの引数に文字エンコードを指定します。

ファイルはreadメソッドを使って、データを1バイトずつ読み込みます。

readメソッドの戻り値はint型で、データの次のバイトを返します。
ファイルの終わりに達した場合は-1を返します。

FileInputStreamクラスの使い方を覚えるために、次のプログラムで確認してみましょう!

[実行結果]

このプログラムではテキストファイルをUTF-8で読み込んで、その内容を1バイトずつ表示しています。
実行結果にはテキストファイルの内容の”abc”が文字コードで表示されています。

読み込みが終わったら、closeメソッドを使用してファイルのリソースを閉じる必要があるので忘れないようにしてください。

このプログラムではcloseメソッドの代わりにJava7から追加されたtry-with-resources文でリソースを閉じています。

try-with-resources文を使うには、try文を抜けたときにcloseしたいリソースを、try文の直後の括弧の中に記述します。

バイトストリームから文字に変換する方法

テキストファイルを読み込んだ場合、そのままではバイトの数値が表示されるので、読めるように文字に変換する方法を解説します。

バイトの数値を文字に変えるには、char型にキャストするだけでOKです。

バイトストリームから文字に変換する方法を次のプログラムで確認してみましょう!

[実行結果]

バイトストリームから文字に変換して、テキストファイルの内容を正しく表示できることが確認できました!

ファイルの読み込み方法について詳しく知りたい方へ

ファイルのさまざまな読み込み方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

まとめ

いかがでしたか?

今回はFileInputStreamを使ってファイルを読み込む方法について解説しました。

文字エンコードの指定を間違えると正しく読み込めないので注意してくださいね。

もしファイルの読み込みを忘れてしまったらこの記事を確認してください!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

中沢 丈

中沢 丈

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

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

おすすめコンテンツ

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

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