ファイルの操作!JavaでFileクラスを使う方法【初心者向け】

初心者向けにJavaでFileクラスを使う方法について詳しく解説しています。ファイルやフォルダを扱うクラスで書き方を説明しています。実際にサンプルプログラムを書きながら処理の流れを解説しているので、ぜひ参考にしてみてください。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

この記事では、JavaでFileクラスを使う方法について解説しています。

ファイルの操作を行う際に使うクラスなので、実際にプログラムを書きながら理解しましょう。

 

なお本記事は、TechAcademyのJava講座の内容をもとに作成しています。

 

田島悠介

今回はFileクラスを使ってみよう。

大石ゆかり

田島メンター!Fileクラスは何に使うんですか〜?

田島悠介

ファイルに関する色々な操作を行うことができるんだ。詳しく見ていこう。

大石ゆかり

はい!

Fileクラスとは

Fileは、ファイルまたはフォルダ(ディレクトリ)を表すクラスです。

ファイルの読み書きや、フォルダ中のファイル一覧の取得といった、ファイルシステムの操作全般で使用します。

 

Fileクラスの書き方

操作対象のパスを引数とし、コンストラクタを呼び出します。

File f = new File("C:\\path\\to\\file");

以降、Fileインスタンスを用いて各種操作を行います。

String name = f.getName(); // 名前を取得する

boolean b = f.exists(); // 対象が存在すればtrue

f.delete(); // 対象を削除する。

boolean b = f.isFile(); // ファイルならばtrue
boolean b = f.isDirectory(); // フォルダならばtrue

int length = f.length(); // サイズを取得する

詳細は公式のリファレンスを参照してください。

 

田島悠介

Fileクラスの基本の書き方だね。

大石ゆかり

引数は対象のファイルやフォルダのパスになるんですね。

田島悠介

次は実際にFileクラスを使ってみよう。ここでは指定のフォルダ内の一覧を行うコードを書いてみるよ。

[PR] Javaで挫折しない学習方法を動画で公開中

実際に書いてみよう

指定したフォルダ配下のフォルダ、ファイル一覧を表示するプログラムです。

種類(フォルダかファイルか)、名前、サイズを表示します。

ソースコード

import java.io.File;
import java.nio.file.Paths;

public class FileDemo {
  public static void main(String[] args) {
    // 一覧を取得する対象の親フォルダ
    String targetFolderPath = "C:\\Program Files\\Java\\jdk-10";
    File targetFolder = new File(targetFolderPath);

    // フォルダ中の子フォルダ・子ファイル一覧を取得し、ループする
    for (String name : targetFolder.list()) {
      // 親フォルダと、子フォルダ・子ファイル名を結合し、絶対パスとする
      String path = Paths.get(targetFolderPath, name).toString();
      File f = new File(path);

      // フォルダかファイルかを判定する
      String type = "";
      if (f.isFile()) {
        type = "ファイル";
      } else if (f.isDirectory()) {
        type = "フォルダ";
      }

      // 種別、名前、サイズを表示する
      System.out.println(type + " " + name + " " + f.length());
    }
  }
}

実行結果

フォルダ bin 65536
フォルダ conf 4096
ファイル COPYRIGHT 3244
フォルダ include 4096
フォルダ jmods 40960
フォルダ legal 40960
フォルダ lib 8192
ファイル README.html 158
ファイル release 1681

解説

Fileインスタンスを作成します。コンストラクタの引数には、一覧を取得する対象の親フォルダを指定しましょう。

次にlistメソッドで、子フォルダ、子ファイルの一覧を取得し、for文でループします。

再びFileインスタンスを作成します。コンストラクタの引数には、子フォルダ、子ファイルを指定しましょう。

isFile, isDirectoryメソッドで、フォルダかファイルかを判定し、種別、名前、サイズを表示します。

 

以上、Fileクラスの使い方を解説しました。

入門向けJavaの学習サイトもまとめているので、合わせてご覧ください。

 

田島悠介

Fileクラスで各ファイルの情報を出力した例になるよ。

大石ゆかり

対象がファイルであるかフォルダであるかを調べるのにisFileやisDirectoryを使っているんですね。

田島悠介

ファイルの一覧以外にもさまざまな操作が可能なので、ぜひ使いこなしてみよう。

大石ゆかり

そうですね、公式リファレンスも活用してみます。ありがとうございました!

また、オンラインのプログラミングスクールTechAcademyでは、Java講座を開催しています。

JavaやServletの技術を使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

この記事を監修してくれた方

橋本紘希(はしもとこうき)
システムインテグレータ企業勤務のシステムエンジニア

開発実績: Javaプログラムを用いた業務用Webアプリケーションや、基幹システム用バッチアプリケーションなどの設計構築試験。