java复制文件的4种方式

简介: java复制文件的4种方式

一、使用FileStreams复制

最经典的实现方式

但是效率非常低下

privatestaticvoidcopyFileUsingFileStreams(Filesource, Filedest) throwsIOException {  
InputStreaminput=null;  
OutputStreamoutput=null;  
try {
input=newFileInputStream(source);
output=newFileOutputStream(dest);    
byte[] buf=newbyte[1024];    
intbytesRead;    
while ((bytesRead=input.read(buf)) >0) {
output.write(buf, 0, bytesRead);
      }
  } finally {
input.close();
output.close();
  }
}


二、使用FileChannel复制

Java NIO包括transferFrom方法

速度应该比文件流复制的速度更快

privatestaticvoidcopyFileUsingFileChannels(Filesource, Filedest) throwsIOException {  
FileChannelinputChannel=null;  
FileChanneloutputChannel=null;  
try {
inputChannel=newFileInputStream(source).getChannel();
outputChannel=newFileOutputStream(dest).getChannel();
outputChannel.transferFrom(inputChannel, 0, inputChannel.size());
  } finally {
inputChannel.close();
outputChannel.close();
  }
}

三、使用Commons IO复制

Apache Commons IO提供拷贝文件方法在其FileUtils类,可用于复制一个文件到另一个地方。

其复制文件的原理就是上述第二种方法:使用FileChannel复制

privatestaticvoidcopyFileUsingApacheCommonsIO(Filesource, Filedest)
throwsIOException {
FileUtils.copyFile(source, dest);
}


 

四、使用Java7的Files类复制

Java 7中可以使用复制方法的Files类文件,从一个文件复制到另一个文件。

privatestaticvoidcopyFileUsingJava7Files(Filesource, Filedest)
throwsIOException {  
Files.copy(source.toPath(), dest.toPath());
}
目录
相关文章
|
1月前
|
Java
有关Java发送邮件信息(支持附件、html文件模板发送)
有关Java发送邮件信息(支持附件、html文件模板发送)
31 1
|
1月前
|
Java
java中替换文件内容
java中替换文件内容
14 1
|
1月前
|
Java API
Java中文件与输入输出
Java中文件与输入输出
|
1月前
|
Java
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
10 0
|
1月前
|
Java
java程序导出堆文件
java程序导出堆文件
|
1月前
|
SQL Oracle Java
sql文件批处理程序-java桌面应用
sql文件批处理程序-java桌面应用
25 0
|
1月前
|
存储 Java 文件存储
如何用 Java 压缩 ZIP 文件?
【2月更文挑战第21天】
35 1
|
1月前
|
Java
Java实现文件和目录的管理
Java实现文件和目录的管理
29 0
|
6天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
33 3
|
1天前
|
存储 前端开发 Java
Java实现文件分片上传
Java实现文件分片上传
6 0