Java でファイルをコピーする

Haider Ali 2023年10月12日
  1. Java でファイルをコピーするときの例外処理
  2. Java でファイルをコピーするサンプルコード
Java でファイルをコピーする

この記事では、ある場所から別の場所にファイルをコピーする方法を紹介します。Java 言語には、あるファイルを別のディレクトリに移動できるライブラリがあります。もっと詳しく見てみましょう。

Java コードを介してファイルをコピーするには、ソースパスと宛先パスを 2つの異なる文字列に保存する必要があります。後で、ソースパスを介して目的のファイルをキャプチャし、宛先の場所のコピーを作成します。次のコードを機能させるには、このライブラリを追加する必要があります。

import static java.nio.file.StandardCopyOption.*;

処理する必要のあるいくつかの例外があります。

Java でファイルをコピーするときの例外処理

以下は、あなたに役立つかもしれない 3つの例外処理キーワードです。

  • ファイルがすでに宛先の場所(同じ名前)にある状況に遭遇した場合は、REPLACE_EXISTING を使用する必要があります。これにより、既存のファイルが置き換えられます。
  • COPY_ATTRIBUTES、この保存されたキーワードは、ソースファイルにリンクされた属性をコピーします。
  • シンボリックリンクをたどりたくない場合、つまりターゲットリンクをコピーしたくない場合は、NOFOLLOW_LINKS を使用できます。

Java でファイルをコピーするサンプルコード

import static java.nio.file.StandardCopyOption.*;

import java.io.*;
import java.nio.file.Files;
public class Main {
  public static void main(String[] args) {
    String sourcePath = "E:\\source location\\delftstack.txt"; // source file path
    String destinationPath = "E:\\destination location\\"; // destination file path
    File sourceFile = new File(sourcePath); // Creating A Source File
    File destinationFile = new File(
        destinationPath + sourceFile.getName()); // Creating A Destination File. Name stays the same
                                                 // this way, referring to getName()
    try {
      Files.copy(sourceFile.toPath(), destinationFile.toPath(), REPLACE_EXISTING);
      // Static Methods To Copy Copy source path to destination path
    } catch (Exception e) {
      System.out.println(e); // printing in case of error.
    }
  }
}

上記のコード例では、ご覧のとおり、ライブラリが追加されています。ソースパスをコピーし、文字列 sourcepath 内に保存し、宛先の場所でも同じことを行いました。

その後、ソースファイル(ファイルオブジェクト)を作成し、ソースパスの文字列に渡しました。これで、通常はファイルをコピーして貼り付ける一方で、名前は同じままであることがわかりました。これを行うには、ソースファイルで getName() を使用します。

Files.copy(source, target, REPLACE_EXISTING); を使用するコマンドを実行して値を渡すと、上記のコード例で Java のテキストファイルがコピーされます。

著者: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

関連記事 - Java File