复制一个大于50m的文件Java
时间: 2024-01-21 14:02:51 浏览: 28
可以使用 Java NIO(New I/O)库中的 FileChannel 类来复制大文件。以下是一个示例代码片段:
```java
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
public class FileCopy {
public static void main(String[] args) throws IOException {
File sourceFile = new File("sourceFile.txt");
File destFile = new File("destFile.txt");
// 获取源文件和目标文件的通道
FileChannel sourceChannel = new FileInputStream(sourceFile).getChannel();
FileChannel destChannel = new FileOutputStream(destFile).getChannel();
// 分配一个 1MB 的缓冲区
ByteBuffer buffer = ByteBuffer.allocate(1024 * 1024);
// 从源文件通道读取数据并写入目标文件通道
while (sourceChannel.read(buffer) != -1) {
buffer.flip();
destChannel.write(buffer);
buffer.clear();
}
// 关闭通道
sourceChannel.close();
destChannel.close();
}
}
```
在这个示例中,我们使用 `FileChannel` 类从源文件读取数据,并将其写入目标文件。我们使用了一个 1MB 的缓冲区来提高读写性能。最后,记得关闭通道以释放资源。