文件复制的另一种选择,使用FileChannel复制文件
2024-10-21 07:42:33
通常来说,FileChannel比普通的缓冲输入输出流有更高的效率
import
java.io.File;
import
java.io.FileInputStream;
import
java.io.FileOutputStream;
import
java.io.IOException;
import
java.nio.channels.FileChannel;
public
class
fileChannelCopy {
public
static
void
copy(File s, File d) {
FileInputStream fi =
null
;
FileOutputStream fo =
null
;
FileChannel in =
null
;
FileChannel out =
null
;
try
{
fi =
new
FileInputStream(s);
fo =
new
FileOutputStream(d);
in = fi.getChannel();
//得到对应的文件通道
out = fo.getChannel();
//得到对应的文件通道
in.transferTo(
0
, in.size(), out);
//连接两个通道,并且从in通道读取,然后写入out通道
}
catch
(IOException e) {
e.printStackTrace();
}
finally
{
try
{
fi.close();
in.close();
fo.close();
out.close();
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
public
static
void
main(String[] args) {
File s =
new
File(
"e:\\java.zip"
);
File d =
new
File(
"d:\\java.zip"
);
new
fileChannelCopy().copy(s,d);
System.out.println(
"复制完成"
);
}
}
最新文章
- MySQL数据库罕见的BUG——Can't get hostname for your address
- [Head First设计模式]餐馆中的设计模式——命令模式
- mongodb ubuntu下自启动
- sass的四种css编译风格
- 【其它】 MathJax - 网页中显示数学公式的终极武器
- 学习angular 指令构造器时遇到的小问题
- ASP.Net中Session失效的一种编程思路
- Yii Query Builder insert()、update()、delete()使用
- nyoj 119 士兵杀敌(三)【线段树区间最大值最小值差】
- Java - 反射机制(Reflection)
- 解决ERROR C2011: 'FD_SET' : 'STRUCT' TYPE REDEFINITION问题
- 【源代码】StringBuilder和StringBuffer震源深度分析
- Compress a folder using powershell
- jQuer __Ajax DOM
- easyHOOK socket send recv
- MySQL物理备份 xtrabackup
- php字符串与数组的特殊情况
- 【解决】Server Tomcat v7.0 Server at localhost failed to start.
- Python 输出
- MATLAB中的FOR循环问题