package com.demo.nio;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class Util {
public static void copyFileByNio(String src, String des) {
FileInputStream fin = null;
FileOutputStream fout = null;
FileChannel fileChannelIn = null;
FileChannel fileChannelOut = null;
try {
fin = new FileInputStream(src);
fout = new FileOutputStream(des);
fileChannelIn = fin.getChannel();
fileChannelOut = fout.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1024);
while (fileChannelIn.read(buffer) != -1) {
buffer.flip();
fileChannelOut.write(buffer);
buffer.clear();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fileChannelOut != null) {
fileChannelOut.close();
}
if (fileChannelIn != null) {
fileChannelIn.close();
}
if (fout != null) {
fout.close();
}
if (fin != null) {
fin.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
copyFileByNio("/Users/ljw/shtest/1.txt", "/Users/ljw/shtest/2.txt");
}
}
(1)NIO FileChannel文件拷贝
最新推荐文章于 2023-04-18 09:06:23 发布
本文介绍了一种利用Java NIO技术实现文件高效复制的方法。通过创建FileInputStream和FileOutputStream,获取其对应的FileChannel,利用ByteBuffer进行数据读写,实现了从源文件到目标文件的数据传输。文章详细展示了代码实现过程,包括异常处理和资源关闭。
1052

被折叠的 条评论
为什么被折叠?



