Java の Files クラスを使ってファイルをコピーする

JavaJavaBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Java でファイルを別のファイルにコピーする方法を学びます。ファイルをコピーする方法はいくつかあり、FileInputStream、FileOutputStream、および Files クラスを使用するなどです。ここでは、Files クラスに焦点を当てます。これは、ソースファイルを宛先ファイルに即座にコピーする copy() メソッドを提供するため、使いやすいです。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/ConcurrentandNetworkProgrammingGroup(["Concurrent and Network Programming"]) java/FileandIOManagementGroup -.-> java/files("Files") java/FileandIOManagementGroup -.-> java/create_write_files("Create/Write Files") java/FileandIOManagementGroup -.-> java/io("IO") java/FileandIOManagementGroup -.-> java/stream("Stream") java/FileandIOManagementGroup -.-> java/nio("NIO") java/ConcurrentandNetworkProgrammingGroup -.-> java/working("Working") subgraph Lab Skills java/files -.-> lab-117430{{"Java の Files クラスを使ってファイルをコピーする"}} java/create_write_files -.-> lab-117430{{"Java の Files クラスを使ってファイルをコピーする"}} java/io -.-> lab-117430{{"Java の Files クラスを使ってファイルをコピーする"}} java/stream -.-> lab-117430{{"Java の Files クラスを使ってファイルをコピーする"}} java/nio -.-> lab-117430{{"Java の Files クラスを使ってファイルをコピーする"}} java/working -.-> lab-117430{{"Java の Files クラスを使ってファイルをコピーする"}} end

必要なライブラリをインポートする

新しい Java ファイルでは、次のコードを使用して必要なライブラリをインポートします。

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.File;
import java.io.FileInputStream;

ファイルオブジェクトを作成する

コピーする必要のあるソースファイルを指すファイルオブジェクトを作成します。

File source = new File("sourceFile.txt");

宛先ファイルオブジェクトを作成する

ソースファイルからデータをコピーしたいファイルを指す宛先ファイルオブジェクトを作成します。

File destination = new File("destinationFile.txt");

Files クラスを使ってデータをコピーする

Files クラスを使って、ソースファイルから宛先ファイルにデータをコピーします。これを行うには、Files クラスの copy() メソッドを使用します。

Path sourcePath = Paths.get(source.getAbsolutePath());
OutputStream destinationStream = new FileOutputStream(destination);
Files.copy(sourcePath, destinationStream);

FileInputStream と FileOutputStream を使ってデータをコピーする

この方法では、FileInputStream と FileOutputStream を使ってデータをコピーします。次のコードを使用して、ソースファイルからデータを読み取り、FileOutputStream の write() メソッドを使用してデータを書き込みます。

FileInputStream sourceStream = new FileInputStream(source);
FileOutputStream destinationStream = new FileOutputStream(destination);

byte[] buffer = new byte[1024];
int bytesRead;

while ((bytesRead = sourceStream.read(buffer)) > 0) {
    destinationStream.write(buffer, 0, bytesRead);
}

sourceStream.close();
destinationStream.close();

プログラムをコンパイルする

ターミナルを開き、~/project ディレクトリに移動します。次のコマンドを使用してプログラムをコンパイルします。

javac CopyFile.java

プログラムを実行する

次のコマンドを使用してプログラムを実行します。

java CopyFile

まとめ

この実験では、Files クラスと FileInputStream および FileOutputStream を使用して、1 つのファイルから別のファイルにデータをコピーする方法を学びました。Files クラスは、データを即座にコピーする copy() メソッドを提供するため、使いやすいです。FileInputStream と FileOutputStream を使用して、手動で読み取りと書き込みを行うことでデータをコピーすることもできます。