Java实现文件拷贝的方法
作者:网络转载 发布时间:[ 2016/9/14 10:21:14 ] 推荐标签:测试开发技术 Java
java有两种文件流的
字符流:Reader/Writer 字节流:InputStream/OutputStream
如果文件不是普通的文本类型的话,不能使用字符流了,所以通用的文件流还是字节流。这里使用字节流实现文件拷贝。
使用java.io.File中的方法
public static void copyByFileStreams(File source, File dest){
FileInputStream inputStream = null;
FileOutputStream outputStream = null;
try{
inputStream = new FileInputStream(source);
outputStream = new FileOutputStream(dest);
//一次性读入内存,再一次性写入
//byte[] b = new byte[(int)source.length()];
//inputStream.read(b);
//outputStream.write(b);
//边读边写
int len = 0;
while((len = inputStream.read(b)) != -1){
outputStream.write(len);
}
}catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用java.nio.Channels中的方法
public static void copyByFileChannels(File source, File dest) {
FileInputStream inputStream = null;
FileOutputStream outputStream = null;
try {
inputStream = new FileInputStream(source);
outputStream = new FileOutputStream(dest);
FileChannel inputChannel = inputStream.getChannel();
FileChannel outputChannel = outputStream.getChannel();
outputChannel.transferFrom(inputChannel, 0, inputChannel.size());
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用Java7中Files.copy完成拷贝
/**
* 使用java7的Files.copy完成拷贝操作,其内部也是使用FileChannels
* @param source
* @param dest
*/
public static void copyByJava7Files(File source, File dest) {
try {
Files.copy(source.toPath(),dest.toPath());
} catch (IOException e) {
e.printStackTrace();
}
}
平时常用的应该是第一种方式了,但是好像使用FileChannel效率更高,这个还没做性能比较,因为没来得及看源码,日后用到了再说吧。^_^
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11