📅  最后修改于: 2023-12-03 15:15:59.924000             🧑  作者: Mango
复制文件是Java编程中一项基本操作。Java提供了多种复制文件的方式,本文将逐一介绍。
要创建文件输入输出流,需要使用Java.io包中的FileInputStream和FileOutputStream类。这种方式需要显式地创建一个缓冲区,然后将输入流中的数据复制到缓冲区中,再将缓冲区中的数据输出到输出流中。以下是该方法的实现方式:
import java.io.*;
public class CopyFileUsingStream {
public static void copy(File source, File dest) throws IOException {
try (InputStream is = new FileInputStream(source);
OutputStream os = new FileOutputStream(dest)) {
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
}
}
public static void main(String[] args) {
File source = new File("sourcefile.txt");
File dest = new File("destfile.txt");
try {
copy(source, dest);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Java 7中引入的NIO.2提供了一组可用于文件操作的API。在NIO.2中,文件操作使用java.nio.file包中的Path和Files类。以下是使用NIO.2复制文件的实现方式:
import java.io.*;
import java.nio.file.*;
public class CopyFileUsingNIO2 {
public static void copy(Path source, Path dest) throws IOException {
Files.copy(source, dest, StandardCopyOption.REPLACE_EXISTING);
}
public static void main(String[] args) {
Path source = Paths.get("sourcefile.txt");
Path dest = Paths.get("destfile.txt");
try {
copy(source, dest);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Apache Commons IO库提供了方便的文件操作API。使用该库中的FileUtils类的copyFile()方法来复制文件。以下是该方法的实现方式:
import org.apache.commons.io.*;
public class CopyFileUsingCommonsIO {
public static void copy(File source, File dest) throws IOException {
FileUtils.copyFile(source, dest);
}
public static void main(String[] args) {
File source = new File("sourcefile.txt");
File dest = new File("destfile.txt");
try {
copy(source, dest);
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用上述的复制文件方法,可以轻松地解决Java编程中的各种文件操作问题。