java怎么复制文件夹,JAVA复制文件
写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用
爪哇岛中复制文件的方法:(推荐:java视频教程)
一、使用FileStreams复制
这是最经典的方式将一个文件的内容复制到另一个文件中。使用文件输入流读取文件A的字节,使用文件输出流写入到文件乙。这是第一个方法的代码:
私有静态void copyFileUsingFileStreams(文件源,文件目标)
引发IOException {
输入流输入=空
输出流输出=空
尝试{
input=新文件输入流(源);
output=新文件输出流(dest);
字节[]缓冲区=新字节[1024];
int字节读取
while((字节读取=输入。念(buf))!=-1) {
output.write(buf,0,字节读取);
}
}最后{
输入。close();
输出。close();
}
}正如你所看到的我们执行几个读和写操作尝试的数据,所以这应该是一个低效率的,下一个方法我们将看到新的方式。
二、使用FileChannel复制
Java NIO包括转移自方法,根据文档应该比文件流复制的速度更快。这是第二种方法的代码:
私有静态void copyFileUsingFileChannels(文件源,文件目标)引发IOException {
文件通道输入通道=空
文件通道输出通道=空
尝试{
输入通道=新文件输入流(源)。获取通道();
输出通道=新文件输出流(目标)。获取通道();
输出通道。转自(输入通道,0,输入通道。size());
}最后{
输入通道。close();
输出通道。close();
}
}三、使用Commons IO复制
Apache Commons IO提供拷贝文件方法在其FileUtils类,可用于复制一个文件到另一个地方。它非常方便使用Apache Commons FileUtils类时,您已经使用您的项目。基本上,这个类使用Java NIO文件通道内部。这是第三种方法的代码:
私有静态使用apachecommonsio(文件源,文件目标)
引发IOException {
FileUtils.copyFile(source,dest);
}该方法的核心代码如下:
私有静态void doCopyFile(文件srcFile、文件destFile、布尔preserveFileDate)引发IOException {
if(目标文件。exists()目标文件。是目录()){
引发新的io异常(目标 destFile )存在,但它是一个目录);
}
FileInputStream fis=null
FileOutputStream fos=null
读写文件输入=空
读写文件输出=空
尝试{
fis=新文件inputstream(src文件);
fos=新文件输出流(dest文件);
输入=fis。获取通道();
输出=fos。获取通道();
长尺寸=输入。size();
长pos=0;
长计数=0;
while (pos size) {
count=SIZE-pos FILE _ COPY _ BUFFER _ SIZE?文件_副本_缓冲区_大小:大小-位置;
pos=output.transferFrom(input,pos,count);
}
}最后{
IOUtils.closeQuietly(输出);
欠条。安静地关闭(fos);
IOUtils.closeQuietly(输入);
欠条。安静地关闭(fis);
}
if (srcFile.length()!=destFile.length()) {
引发新的IOException(无法从复制全部内容
srcFile " "到""目标文件" ");
}
if (preserveFileDate) {
destfile。setlastmedified(src文件。lastmedified());
}
}由此可见,使用Apache Commons IO复制文件的原理就是上述第二种方法:使用读写文件复制
四、使用Java7的Files类复制
如果你有一些经验在Java 7中你可能会知道,可以使用复制方法的文件类文件,从一个文件复制到另一个文件。这是第四个方法的代码:
私有静态void copyFileUsingJava7Files(文件源,文件目标)
引发IOException {
Files.copy(source.toPath()、dest . topath());
}更多java知识请关注java基础教程部分。java就是这么拷贝文件的。更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。