Javaでファイルを別のディレクトリに移動する方法

Javaでファイルを別のディレクトリに移動する方法

Java.io.Fileには、ready make move fileメソッドは含まれていませんが、次の2つの方法で回避できます。

  1. File.renameTo().

  2. 新しいファイルにコピーして、元のファイルを削除します。

以下の2つの例では、ファイル「C:\folderA\Afile.txt」をあるディレクトリから同じファイル名「C:\folderB\Afile.txt」の別のディレクトリに移動します。

1. File.renameTo()

package com.example.file;

import java.io.File;

public class MoveFileExample
{
    public static void main(String[] args)
    {
        try{

           File afile =new File("C:\\folderA\\Afile.txt");

           if(afile.renameTo(new File("C:\\folderB\\" + afile.getName()))){
            System.out.println("File is moved successful!");
           }else{
            System.out.println("File is failed to move!");
           }

        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

2. コピーと削除

package com.example.file;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class MoveFileExample
{
    public static void main(String[] args)
    {

        InputStream inStream = null;
    OutputStream outStream = null;

        try{

            File afile =new File("C:\\folderA\\Afile.txt");
            File bfile =new File("C:\\folderB\\Afile.txt");

            inStream = new FileInputStream(afile);
            outStream = new FileOutputStream(bfile);

            byte[] buffer = new byte[1024];

            int length;
            //copy the file content in bytes
            while ((length = inStream.read(buffer)) > 0){

                outStream.write(buffer, 0, length);

            }

            inStream.close();
            outStream.close();

            //delete the original file
            afile.delete();

            System.out.println("File is copied successful!");

        }catch(IOException e){
            e.printStackTrace();
        }
    }
}