JavaのFileクラスを利用してファイルを移動する方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaのFileクラスを利用してファイルを移動する方法について解説しています。Filesクラスはファイルやフォルダに関する各種操作を行う際に使用されます。ここではmoveメソッドによるファイル移動の書き方を見ていきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

JavaのFileクラスを利用してファイルを移動する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

Javaについてそもそもよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Java講座の内容をもとに作成しています。

 

田島悠介

今回は、Javaに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Fileクラスを利用してファイルを移動する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

目次

 

Fileクラスとは

まずは、ファイル操作の基本となるFileクラスについて説明します。Fileクラスというのは、Javaにおいてローカルディレクトリに存在するファイルやディレクトリについての多様な操作を実現するためのクラスです。

行なうことのできる操作としては、ファイルやディレクトリの作成・削除・編集、などなど数多くあり、それぞれについてメソッドが用意されています

基本的な考え方としては、1つのファイルもしくはディレクトリについて、1つのFileクラスを対応させて、メソッドを使うことにより操作を実現します。

Fileクラスの宣言を行なうときは、

File Fileオブジェクト = new File("ファイルのパス");

と記述します。

 

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

ファイルを移動する方法

Fileクラスを使ってファイルを移動するには、

  1. 移動したいファイルに対応したFileクラスを用意
  2. 移動先に対応したFileクラスを用意
  3. renameToメソッドを使ってファイルを移動

という手順を踏みます。

1と2の手順は、それぞれ、

File Fileオブジェクト1 = new File("移動したいファイルのパス");
File Fileオブジェクト2 = new File("移動先のパス");

とするだけでOKです。

3の手順ではrenameToメソッドを使いますが、このメソッドの記述方法は、移動したいFileオブジェクト.renameTo(移動先のFileオブジェクト); と記述します。

使い方はシンプルなので、扱いやすいのではないかと思います。

 

実際に書いてみよう

それでは、上で紹介した手順を踏んで、Fileクラスを使ったファイルの移動をしてみましょう。

今回は、“「sample1」ディレクトリの「sample.txt」というファイルを「sample2」ディレクトリに移動する” という処理を行なうプログラムを紹介します。

import java.io.File;

public class FileTransfer{

        public static void main(String[] args) {

                //移動したいFileオブジェクト
                 File sample1 = new File("sample1/sample.txt");
                 //移動先のFileオブジェクト
                 File sample2 = new File("sample2/sample.txt");

                sample1.renameTo(sample2);

        }
}

あらかじめ。

  • sample1というディレクトリ
  • その中にsample.txtというファイル
  • sample2というディレクトリ

を用意しておいて、このコードを実行すると、ファイルが移動していることが確認できます。ディレクトリや、ファイルを変えて確認してみてください。

 

まとめ

この記事では、JavaのFileクラスを使ったローカルファイルの移動方法について説明しました。Javaプログラムでファイル操作が必要となったときには、ぜひ参考にしてみてください。

 

監修してくれたメンター

メンターSさん

システムエンジニアとしてこれまで行政システムや医療用システムの保守、開発に携わりました。

JavaやPython、PHP、Kotlinなど様々な言語での開発経験があります。

TechAcademyではJavaコース、Pythonコース、AIコースなど7コースを担当しています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でも最短4週間で、JavaやServletの技術を使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。

 

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。