java nio拷贝文件
时间: 2023-07-28 17:08:34 浏览: 110
在Java中,您可以使用NIO(New I/O)来拷贝文件。NIO提供了更高效的I/O操作方式,特别是在处理大文件时。以下是一个使用NIO拷贝文件的示例代码:
```java
import java.io.IOException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.channels.FileChannel;
public class FileCopyExample {
public static void main(String[] args) {
String sourceFile = "path/to/source/file.txt"; // 源文件路径
String destinationFile = "path/to/destination/file.txt"; // 目标文件路径
try {
// 创建输入流和输出流
FileInputStream fis = new FileInputStream(sourceFile);
FileOutputStream fos = new FileOutputStream(destinationFile);
// 获取输入流和输出流的通道
FileChannel sourceChannel = fis.getChannel();
FileChannel destinationChannel = fos.getChannel();
// 使用 transferTo() 方法拷贝文件
destinationChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
// 关闭通道和流
sourceChannel.close();
destinationChannel.close();
fis.close();
fos.close();
System.out.println("文件拷贝完成");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上述示例中,您需要将 `sourceFile` 和 `destinationFile` 的值替换为实际的源文件路径和目标文件路径。代码将打开源文件和目标文件的输入流和输出流,并获取它们的通道。然后,通过调用 `transferFrom()` 方法来拷贝文件数据。最后,关闭通道和流。
请注意,以上代码只是一个简单的示例,没有处理异常情况和错误处理。在实际的应用中,您可能需要添加适当的异常处理和错误检查。
另外,还有其他一些方法可以使用NIO拷贝文件,例如使用 `transferTo()` 方法、使用 `read()` 和 `write()` 方法逐个字节拷贝等。您可以根据自己的需求选择适合的方法。
阅读全文