支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • JavaのFile系クラスを用いたフ

はじめに

システム開発において、プログラムの構成はもちろん欠かせませんが、プログラムを記述する際、良く用いられている言語がJavaになります。Javaはオブジェクト指向の言語で、それらを用いてWebアプリにおけるバックエンド側の構築や制御系のシステムに多く用いられています。Javaには色々な技術が詰み込まれていますが、今回はその中で、Javaを用い、ファイルの読み書きを行う方法についての基本的な部分を記載していきます。

ファイルの読み書きを行う「Fileクラス」

JavaにはAPIと呼ばれるライブラリ(よく利用されるクラスの集まり)が豊富であり、開発を行う際、ライブラリよりクラスを呼び出してプログラムを構築していくことが主流担っています。題名にもありますが、ファイルを読み込んだり、書き込みを行うクラスはFile系のクラスになります。以下にファイルクラスを呼び出す方法を記載します。

File f = new File(“パス名”);
※パス名・・「aaa#bbb.text」のようなファイルの名称

また、前提条件としてライブラリに保存されているクラスではあるので、Fileクラスを利用するには「import.java.io.File;」の記述が必要です。

ファイルの読み込み

ファイルクラスの基本的な使い方を説明したところで、次はJavaを用いたファイルの読み込みを行う方法を記載していきます。ファイルの読み込みにはFileReaderクラスを用います。FileReaderを用いたfileの読み込み方法は以下のコードになります。

try{
File f = new File(“パス名”);
FileReader fr = new FileReader(f);・・①
int a;
while(fr.read() != -1){・・②
System.out.print(char(a));}
fr.close();・・③
}catch(FileNotFoundException){
System.out.println(“ファイルはありません”);・・④
}catch(IOException e){
System.out.println(“ファイルを読み込めません”);}・・⑤

  • ①・・ファイルクラスを取得後、FileReaderクラスで読み取りの準備を完了しています。
  • ②・・FileReaderクラスのreadメソッドは、テキストファイルの先頭の1文字目を取り出すメソッドです。すべての文字を読み込むには、While文で繰り返し読み込みの処理を行う必要があります。最後まで文字を読み込んだら-1の値を返すので、そこで処理が終了するように設定しておきます。
  • ③・・FileReaderクラスは利用後閉じる必要があるので、closeメソッドを用いています。
  • ④・・ファイルの読み込みはエラーが起きることが想定されるので、try~catch文で処理を囲む必要性があります。
  • ⑤・・FileReaderクラスのreadメソッドも同様にエラーが想定されるものになるので(IOException)、try~catch文が必要です。
  • 以上がファイルの読み取りの基本的な方法になります。
    ※見ていただいた通り、FileReaderを用いての読み込みは1文字ずつの処理になってしまうので、効率が非常に悪いです。FileReaderクラスの利用を前提に、文字の読みこみをまとめて行えるBufferReaderクラスを併用して行うことがほとんどになります。

    ファイルの書き込み

    次はJavaを用いたFileの書き込みについて説明します。ファイルへの書き込みを行うにはFileWriterクラスを用います。同様にサンプルコードを見ていこうと思います。

    try{
    File f = new File(“パス名”);
    FileWriter fw = new FileWriter(f);・・①
    fw.write(”書き込みたい文字”);・・②
    fw.close();・・③
    }catch(FileNotFoundException){
    System.out.println(“ファイルはありません”);・・④
    }catch(IOException e){
    System.out.println(“ファイルを書き込めません”);}・・⑤

  • ①・・読み込み同様、FileWriterクラスで書き込みの準備を完了しています。
  • ②・・FileReaderクラスのwriteメソッドを用いることで、ファイルに指定した文字を書き込むことが可能です。
  • ③・・FileWriterクラスも利用後閉じる必要があるので、closeメソッドを用いています。
  • ④・・読み取り同様、try~catch文で処理を囲む必要性があります。
  • ⑤・・FileWriterクラスのwriteメソッドも同様にエラーが想定されるものになるので(IOException)、try~catch文が必要です。
  • 以上がFileWriterを用いてファイルの書き込みを行う一連のコードになります。これ以外にも、ファイルの書き込みの権限が許可されているかを確認するクラスや、指定したものがファイルかどうかを確認するメソッドなどと組み合わせて利用されます。

    まとめ

    この記事ではJavaを用いてファイルの読み書きを行う方法について記載してきました。ファイルの読み書きはシステムにも組み込まれる仕様になります。記載してきた内容は基本的な部分になり、この他にも効率性の向上や権限の確認など細かくも重要な部分を取り扱うメソッドが多数存在するので、それらとも組み合わせてファイルの読み書きについて理解を深めていただければと思います。File系のクラスに加え、SwingなどのGUI系を扱うクラスと併用してプログラムを構築すれば、ファイルの読み書き、保存などが行なえるテキストエディタの作成も可能となるので、Javaの練習に作成してみることもおすすめします。ご拝読いただきありがとうございました。