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

書いた人 ヤマシタ
侍エンジニア塾ブログは、未経験からWebアプリ開発と仕事獲得をサポートする
侍エンジニア塾のオウンドメディアです。
プログラミング学習を覗き見

こんにちは!フリーエンジニアのヤマシタです。

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

この記事では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”が作成されます。

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

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

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

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

主に指定したパスの中身を調べたいときに使用します。

listFilesメソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

ファイル名を変更する

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

引数Fileには、移動先となるFileクラスのオブジェクトを指定します。

renameToメソッドはboolean型を返します。

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

実行結果:

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

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

次に、変更後のファイル名でFileクラスのオブジェクトを作成します。

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

ファイルを移動する方法

renameToメソッドを使ってファイルを移動することもできます。

ファイル名を同じにして、フォルダ名を変更することで移動することになります。

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

実行結果:

ファイルを読み込む方法

JavaではFileReaderクラスやFileInputStreamクラスを使ってファイルを読み込みます。

FileReaderクラスやFileInputStreamクラスの使い方については、こちらで詳しく解説しています。

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

ファイルに書き込む方法

JavaではFileWriterクラスやFileOutputStreamクラスを使ってファイルへ書き込みます。

FileWriterクラスやFileOutputStreamクラスの使い方については、こちらで詳しく解説しています。

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

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

Javaでファイルをコピーする方法はいくつかありますが、ファイル自体を簡単にコピーできるメソッドは存在しません

Java6でファイルをコピーする基本的な方法として、Fileクラスを使う方法とFileChannelクラスを使う方法の2種類があります。

また、Java7で新しく追加されたFilesクラスを使う方法もあります。

これらの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

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

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

対象のファイルが正常に読み込めるか確認するためには、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クラスのオブジェクト生成時に指定する引数のパスは、絶対パス及び相対バス、両方の指定が可能です。

絶対パスと相対パスを指定する方法は、以下の記事で詳しく解説しています!

ファイルを削除する

Fileクラスには、ファイルを削除するためのメソッドも用意されています。

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

ファイルを閉じる

Javaでファイルを読み込み、書き込みなどの処理が終了したら、必ずcloseメソッドでファイル処理を終了する必要があります。

closeメソッドを使用することで、ファイル処理のために確保されていたリソース(メモリ、ファイルディスクリプタ)などが解放されます。

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

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

まとめ

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

ファイルを扱う処理は、さまざまな場面で使用することがあると思います。

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

Javaカリキュラム無料公開中!
この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーランスをされている市川友哉さん。33歳で、プログラミングを学び始め、4ヶ月という短い期間でフリーランスエンジニアとして独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java1

非常識な結果を出した卒業生

活躍する現役エンジニア

人気記事セレクション

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

ヤマシタ

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