Javaに関する様々な情報をご紹介します。

8Fileクラス

Javaに関する様々な情報をご紹介します。

Fileクラス

このページではFileクラスについて説明します。

概要

Fileクラスにはファイル・ディレクトリの作成、PATH名の調査、read権・write権の調査などファイル・ディレクトリに対して動作する様々なメソッドが用意されています。また、FileクラスのオブジェクトはFileReaderクラス、FileWriterクラスなどのファイル入出力関連のオブジェクトを生成する際の引数としても使用されます。

コンストラクタ

Fileクラスで用意されているコンストラクタを紹介します。ファイルやディレクトリが存在しないFileオブジェクトを生成しても特に例外は発生しません。また、ファイルやディレクトリが作られることもありません。

コンストラクタ 説明
File(File, String) 第1引数にPATH名を表すFileオブジェクトを、第2引数にファイルもしくはディレクトリ名を指定し、該当するFileオブジェクトを生成します。
File(String) 引数にファイルもしくはディレクトリ名を指定し、該当するFileオブジェクトを生成します。
File(String, String) 第1引数にPATH名を表す文字列を第2引数にファイルもしくはディレクトリ名を指定し、該当するFileオブジェクトを生成します。
File(URI) 指定されたURIオブジェクトが表すファイルもしくはディレクトリに対し、Fileオブジェクトを生成します。

※ File(URI)のコンストラクタはJ2SE v1.4から実装されています。

例1

第1引数にPATH名を表す「D:\\Java」、第2引数にFileオブジェクトとなる「ADirectory」を指定し、Fileオブジェクトobject1を生成します。
D:\\の\はエスケープ文字で、\の前に\をつけることにより後方の\を意味を持たない記号として扱います。

File object1 = new File("D:\\Java", "ADirectory");

第1引数にPATH名を表すFileオブジェクト「object1」、第2引数にFileオブジェクトとなる「abc.txt」を指定し、Fileオブジェクトobject2を生成します。

File object2 = new File(object1, "abc.txt");

メソッド

Fileクラスで用意されている主なメソッドを紹介します。

戻り型 メソッド 説明
boolean canRead( ) Fileオブジェクトが読み出し可能かを調査します。可能であればtrueを返します。
boolean canWrite( ) Fileオブジェクトが書き込み可能かを調査します。可能であればtrueを返します。
boolean createNewFile( ) Fileオブジェクトが参照するファイルを、ファイルが存在しない時だけ作成します。
boolean delete( ) Fileオブジェクトが参照するファイルもしくはディレクトリを削除します。
boolean exists( ) Fileオブジェクトが参照するファイルもしくはディレクトリが存在するかを調査します。存在する場合はtrueを返します。
String getAbsolutePath( ) Fileオブジェクトが参照するファイルもしくはディレクトリの絶対PATH名を返します。
String getName( ) Fileオブジェクトが参照するファイル名もしくはディレクトリ名を返します。
String getParent( ) Fileオブジェクトが参照するファイルもしくはディレクトリが格納されているディレクトリの絶対PATH名を返します。
boolean isDirectory( ) Fileオブジェクトがディレクトリであるかを判別します。ディレクトリである場合はtrueを返します。
boolean isFile( ) Fileオブジェクトがファイルであるかを判別します。ファイルである場合はtrueを返します。
String[ ] list( ) Fileオブジェクトが参照するディレクトリ内にあるファイルとディレクトリの一覧を返します。
boolean mkdir( ) Fileオブジェクトが参照するディレクトリを作成します。

【例2】Fileクラスで用意されているメソッドを使用した例です。

import java.io.*;

public class ExIO7 {
    public static void main(String[] args) {
        try {
            //(1)Fileオブジェクトの生成
            File directory1 = new File("D:\\Java", "FILE_CLASS");
            //(2)Fileオブジェクトの生成
            File file1 = new File(directory1, "file_class.txt");
            //(3)ディレクトリの作成
            directory1.mkdir();
            //(4)ファイルの作成
            file1.createNewFile();

            if(file1.exists()) {  //(5)ファイルがあればtrueを返す
                //(6)ファイル名を表示
                System.out.println("ファイル名:" + file1.getName());
                //(7)ファイルの格納ディレクトリ名を表示
                System.out.println("格納ディレクトリ名:" + file1.getParent());
                //(8)ファイルのPATH名を表示
                System.out.println("PATH名:" + file1.getAbsolutePath());
                System.out.println("----------------");
            }

            //(9)ディレクトリ内のファイル・ディレクトリ一覧を取得
            String[] directory_list = directory1.list();
            for (int i = 0; i < directory_list.length; i++) {
                //(10)ファイル・ディレクトリ一覧の表示
                System.out.println("ディレクトリの中身:" + directory_list[i]);
            }
        } catch(IOException e) {
        }
    }
}

解説2

  1. (1)第1引数に格納ディレクトリ名、第2引数にディレクトリ名を指定し、Fileオブジェクトdirectory1を生成します。
  2. (2)第1引数にFileオブジェクトdirectory1、第2引数にファイル名を指定し、Fileオブジェクトfile1を生成します。
  3. (3)メソッドmkdirを使用し、directory1オブジェクトが参照するディレクトリを作成します。
  4. (4)メソッドcreateNewFileを使用し、file1オブジェクトが参照するファイルを作成します。
  5. (5)メソッドexistsを使用し、ファイルがあるかを判別します。ファイルがある場合はif文内を実行します。
  6. (6)メソッドgetNameを使用し、file1オブジェクトが参照するファイル名を表示します。
  7. (7)メソッドgetParentを使用し、file1オブジェクトが参照するファイルの格納ディレクトリ名を表示します。
  8. (8)メソッドgetAbsolutePathを使用し、file1オブジェクトが参照するファイルの絶対PATH名を表示します。
  9. (9)メソッドlistを使用し、directory1オブジェクトが参照するディレクトリ内のファイル・ディレクトリ一覧を取得します。
  10. (10)メソッドprintlnを使用し、ファイル・ディレクトリ一覧を表示します。

実行結果2

D:\JAVA>javac ExIO7.java

D:\JAVA>java ExIO7
ファイル名:file_class.txt
格納ディレクトリ名:D:\Java\FILE_CLASS
PATH名:D:\Java\FILE_CLASS\file_class.txt
----------------
ディレクトリの中身:file_class.txt

D:\JAVA>

8Fileクラス