【Java入門】Fileクラスでファイル操作をする方法まとめ

Javaにはさまざまなファイル処理を行うFileクラスがあります。

この記事ではFileクラスの使い方について、

  • Fileとは
  • ファイルを新規に作成する
  • ファイルリストを取得する
  • ファイル名を変更する
  • ファイルを読み込む方法
  • ファイルに書き込む方法
  • ファイルをコピーする方法
  • ファイルを移動する方法
  • ファイルの読み込み・書き込み可否の判定
  • ディレクトリ・ファイルの存在を確認する
  • 絶対パスと相対パス
  • ファイルを削除する
  • ファイルを閉じる

などのFileクラスの基本的な解説から、応用的な使い方を解説しています。

今回はそんなFileクラスの使い方についてわかりやすく解説します!

Fileクラスとは

Fileクラスは、ファイルやディレクトリを作成したり、ファイルのチェック処理、読み込み・書き込み処理など、ファイルに関するさまざまな操作を行います。

Fileクラスは、コンストラクタの引数にパスやディレクトリ・ファイル名を指定することで、オブジェクトを生成します。

String:ファイルパスやディレクトリを指定します。例)File(“c:¥¥tmp¥¥java.txt”)

Fileクラスを使用するには「import java.io.File」のパッケージを指定します。Javaの開発で、何かしらのファイルを扱う機会は多いと言えますので、この機会にぜひFileクラスの基本的な使い方を覚えておきましょう!

ファイルを新規に作成する

ファイルを新規に作成するためには、FileクラスのcreateNewFileメソッドを使用します。

以下にcreateNewFileメソッドを使用した、ファイルを作成する方法を記述します。

サンプルでは、ファイルのオブジェクト生成時にコンストラクタの引数にディレクトリ”/Users/Shared/java/“とファイル名”java.txt”を指定しています。

作成したFileクラスのオブジェクトに対してcreateNewFileメソッドを使用しています。これで指定したディレクトリ”/Users/Shared/java/“に、指定したファイル”java.txt”が作成されます。

ファイル作成については、以下の記事で詳しく解説しています。

【Java入門】Fileクラスでファイルやディレクトリを作成する方法
更新日 : 2019年4月11日

ファイルリストを取得する

FileクラスのlistFilesメソッドは、指定したディレクトリに含まれるファイルやディレクトリを配列として返します。

listFilesメソッドを使用すれば、Fileクラスのオブジェクト配列に、ディレクトリやファイルを一覧として取得することができます。

主に指定したパスの中身を調べたいときに使用します。listFilesメソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【Java入門】FileのlistFilesでファイルを検索して一覧を取得
更新日 : 2019年4月17日

ファイル名を変更する

ファイル名を変更するには、renameToメソッドをつかいます。

引数Fileには、移動先となるFileクラスのオブジェクトを指定します。renameToメソッドはboolean型を返します。

サンプルコードで確認しましょう。

実行結果:

このサンプルコードでは、renameToメソッドを使ってファイル名を変更しています。

まず、Fileクラスのコンストラクタの引数で変更前のファイル名を指定し、オブジェクトを作成します。次に、変更後のファイル名でFileクラスのオブジェクトを作成します。

そして、変更前のFileクラスのオブジェクトからrenameToメソッドを呼び出し、その引数に変更後のFileクラスのオブジェクトを指定することでファイル名を変更することができます。

ファイルを移動する方法

renameToメソッドを使ってファイルを移動することもできます。ファイル名を同じにして、フォルダ名を変更することで移動することになります。

サンプルコードで確認しましょう。

実行結果:

ファイルを読み込む方法

JavaではFileReaderクラスやFileInputStreamクラスを使ってファイルを読み込みます。FileReaderクラスやFileInputStreamクラスの使い方については、こちらで詳しく解説しています。

ぜひ参考にしてください。

【初心者のためのJava入門】ファイルを読み込む4つの方法を解説
更新日 : 2019年5月9日

ファイルに書き込む方法

JavaではFileWriterクラスFileOutputStreamクラスを使ってファイルへ書き込みます。FileWriterクラスやFileOutputStreamクラスの使い方については、こちらで詳しく解説しています。

ぜひ参考にしてください。

Javaでファイルに書き込み・出力する(新規/上書き/追記/文字コード)
更新日 : 2019年5月9日

ファイルをコピーする方法

Javaでファイルをコピーする方法はいくつかありますが、ファイル自体を簡単にコピーできるメソッドは存在しません。Java6でファイルをコピーする基本的な方法として、Fileクラスを使う方法FileChannelクラスを使う方法の2種類があります。

また、Java7で新しく追加されたFilesクラスを使う方法もあります。これらの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

【Java入門】Fileのコピー方法まとめ
更新日 : 2019年5月28日

ファイルの読み込み・書き込み可否の判定

ファイルの読み込み可否判定

対象のファイルが正常に読み込めるか確認するためには、FileクラスのcanReadメソッドを使用します。
canReadメソッドは、boolean型の値を返します。

以下にcanReadメソッドを使用した、ファイル読み込み可否の方法を記述します。

実行結果:

サンプルでは指定したディレクトリのファイルが読み込み可能ですので、canReadメソッドがtrueを返しています。指定したファイルが存在しなかったり、拡張子がファイル形式の拡張子以外の場合は、falseを返します。

ファイルの書き込み可否判定

対象のファイルが正常に書き込めるか確認するためには、FileクラスのcanWriteメソッドを使用します。
canWriteメソッドは、boolean型の値を返します。

以下にcanWriteメソッドを使用した、ファイル書き込み可否の方法を記述します。

実行結果:

サンプルでは指定したディレクトリのファイルが書き込み可能ですので、canWriteメソッドがtrueを返しています。ファイルが読み込み専用だったり、指定したファイルが存在しなかった場合は、falseを返します。

ディレクトリ・ファイルの存在を確認する

指定したディレクトリやファイルが存在するか確認するためには、Fileクラスのexistsメソッドを使用します。
existsメソッドは、boolean型の値を返します。

以下にexistsメソッドを使用した、ファイルの存在を確認する方法を記述します。

実行結果:

サンプルでは指定したディレクトリにファイルが存在しますので、existsメソッドがtrueを返しています。ディレクトリの存在確認を行う場合は、Fileオブジェクト生成時にディレクトリを指定します。

絶対パスと相対パス

Fileクラスのオブジェクト生成時に指定する引数のパスは、絶対パス及び相対バス、両方の指定が可能です。絶対パスと相対パスを指定する方法は、以下の記事で詳しく解説しています!

【Java入門】ファイルパスを取得・指定する(java.io.File/java.nio.file.Files)
更新日 : 2019年6月19日

ファイルを削除する

Fileクラスには、ファイルを削除するためのメソッドも用意されています。ファイルを削除する方法は、以下の記事で詳しく解説しています!

【Java入門】file・directoryの削除で失敗しない方法(delete)
更新日 : 2017年8月21日

ファイルを閉じる

Javaでファイルを読み込み、書き込みなどの処理が終了したら、必ずcloseメソッドでファイル処理を終了する必要があります。closeメソッドを使用することで、ファイル処理のために確保されていたリソース(メモリ、ファイルディスクリプタ)などが解放されます。

以下にcloseメソッドの基本的な使い方を記述します。

ファイルの書き込み処理〜ファイルクローズの一連の処理の詳細については、以下の記事で詳しく解説しています!

【Java入門】Fileクラスでファイルやディレクトリを作成する方法
更新日 : 2019年4月11日

まとめ

ここでは、Fileクラスを使用した、基本的な処理について説明しました。

ファイルを扱う処理は、さまざまな場面で使用することがあると思います。もし、Fileクラスの使い方を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

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

cta_under_bnr

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

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

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

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

書いた人

侍ブログ編集部

侍ブログ編集部

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。
サービスページはこちら
ツイッターはこちら
フェイスブックはこちら

おすすめコンテンツ

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

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