【Java】FileOutputStreamでファイルに書き込む

Javaでバイト単位のデータをファイルに書き込みたい
FileOutputStreamクラスでファイルに書き込む方法を知りたい

javaでファイルに書き込むにはFileOutputStreamクラス、OutputStreamクラスを使用します。

ここでは、ファイルに書き込む処理について、以下の内容で解説していきます。

  • 【基礎】FileOutputStreamクラスとは
  • 【基礎】FileOutputStreamの基本的な使い方
  • 【発展】ファイルに追記する方法
  • 【発展】FileOutputStreamの注意点と回避策

今回はそんなFileOutputStreamクラスについて、さまざまな使い方をわかりやすく解説します!

FileOutputStreamとは

FileOutputStreamクラスとは、ファイルにバイト単位のデータを書き込むときに使用する出力ストリームです。

FileOutputStreamクラスは以下のように記述します。

FileOutputStreamを使用するためには、「java.io」のパッケージをインポートする必要があります。

また、OutputStreamクラスは、バイトでファイルに出力するFileOutputStreamクラスのスーパークラスです。

ファイルに書き込むためのwriteメソッドなどは、OutputStreamクラスで用意されているメソッドですが、FileOutputStreamクラスはOutputStreamクラスを継承しているため使用することができます。

FileOutputStreamの使い方

ファイルに書き込む方法

以下にFileOutputStreamクラスを使用して、ファイルに書き込む方法を記述します。

サンプルでは、FileOutputStreamクラスのオブジェクトを、ファイル/パスを指定して生成しています。

次にFileOutputStreamのwriteメソッドを使用して、書き込むデータをバッファに保存しています。

最後にcloseメソッドでファイル操作のリソースを開放します。

FileOutputStreamクラス単体では、byte型のデータの書き込みのみで、文字列をファイルに書き込むことはできません。

文字列をファイルに書き込みたい場合は、以下のプログラムのようにバイト型の配列として返すgetBytesを使用する方法があります。

getBytesについては、以下の記事で詳しく解説しています。

ファイルに追加で書き込む方法

ファイルに追加で書き込みたい場合は、FileOutputStreamクラスのオブジェクト生成時に、第2引数にtrueを指定します。

さきほど紹介した、サンプルのFileOutputStreamクラスのオブジェクト生成時の処理を、以下のように変更すれば指定したファイルにデータが追記されます。

ファイルに書き込むときの注意点

FileOutputStreamクラスに限らず、ファイル関連のクラスで存在しないパス/ファイル名を指定すると、FileNotFoundExceptionの例外が発生してしまいます。

そのため、事前にパス/ファイル名が正しいか確認する場合はFileクラスのexistsメソッドを使用して、ファイルが存在するか確認する必要があります。

FileOutputStreamクラスは、オブジェクト生成時に引数にFileクラスのオブジェクトを指定できます。

ファイルの存在が確認できたら引数に、Fileクラスのオブジェクトを指定すれば、ファイルへの書き込みが可能となります。

以下にファイルが存在するか、チェック処理を追加したファイルの書き込み方法を記述します。

また、FileNotFoundExceptionの例外は、ファイルが読み取り専用などで、アクセスができなかった場合にも同様の例外が発生しますので注意が必要です。

ファイルの存在を確認する方法は、以下の記事で詳しく解説しています!

FileWriterクラスを使って文字列を書き込む方法

バイトのデータではなく、文字列を書き込むにはFileWriterクラスを使います。

FileWriterクラスを使って文字列を書き込む方法については、こちらの記事で詳しく解説しているのでぜひ確認してください。

まとめ

ここではFileOutputStreamクラスについて、意味や基本的な使い方の説明、ファイルに追記する方法や注意点についても説明しました。

Javaでファイル操作系のクラスは、さまざまな種類が存在しますので、クラスごとに役割はしっかりと把握しておきましょう。

もし、FileOutputStreamクラスの使い方を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

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

cta_under_bnr

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

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

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

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

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

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

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