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());
}
目录
相关文章
|
18天前
|
IDE Java 编译器
使用Java分割PDF文件
使用Java分割PDF文件
23 1
|
20天前
|
XML Java 数据格式
java创建xml文件内容
java创建xml文件内容
18 0
|
20天前
|
XML Java 数据格式
java解析xml文件内容
java解析xml文件内容
20 0
|
11天前
|
Java
Java之file,创建文件,File f1 = new File(“E:\\itcast\\java.txt“),先f1定路径,在f1.createNewFile()就能够创建文件,mkdir目录
Java之file,创建文件,File f1 = new File(“E:\\itcast\\java.txt“),先f1定路径,在f1.createNewFile()就能够创建文件,mkdir目录
|
13天前
|
Java
Error:java: 错误: 无效的源发行版:13, 类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。
Error:java: 错误: 无效的源发行版:13, 类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。
|
14天前
|
Java
如何在Java中优雅地处理大文件?
如何在Java中优雅地处理大文件?
|
15天前
|
Java
用java 将 jb2 文件转图片的方法
用java 将 jb2 文件转图片的方法
|
19天前
|
存储 监控 Java
深入探索Java BIO与NIO输入输出模型:基于文件复制和socket通信
深入探索Java BIO与NIO输入输出模型:基于文件复制和socket通信
|
19天前
|
XML Java 定位技术
详尽分享经纬坐标(BLH)数据创建.kml文件小工具设计Java版
详尽分享经纬坐标(BLH)数据创建.kml文件小工具设计Java版
14 0
|
19天前
|
Java API 开发者
如何在Java中实现高效的文件读写
如何在Java中实现高效的文件读写