Java实现复制文件(文件、文件夹)

Java复制文件主要是File工具类中listFiles()方法先列出文件夹中的文件, 然后使用BufferedInputStream缓冲输入流接收要复制的文件, 再用BufferedOutputStream缓冲输出流的write()方法写入文件

先新建一个复制文件类, 这边使用递归的方法来复制文件

复制文件夹:

	/*** 复制文件夹* @param oldDir 原来的目录* @param newDir 复制到哪个目录*/public static void copyDir(String oldDir, String newDir) {File srcDir = new File(oldDir);// 判断文件是否不存在或是否不是文件夹if (!srcDir.exists() || !srcDir.isDirectory()) {throw new IllegalArgumentException("参数错误");}File destDir = new File(newDir);if (!destDir.exists()) {// 不存在就创建目录if(destDir.mkdirs()){// 列出目录中的文件File[] files = srcDir.listFiles();for (File f : files) {// 是文件就调用复制文件方法 是目录就继续调用复制目录方法if (f.isFile()) {copyFile(f, new File(newDir, f.getName()));} else if (f.isDirectory()) {copyDir(oldDir + File.separator + f.getName(),newDir + File.separator + f.getName());}}}}}

复制文件:

		/*** 复制文件* @param oldDir 原来的文件* @param newDir 复制到的文件*/public static void copyFile(File oldDir, File newDir) {BufferedInputStream bufferedInputStream = null;BufferedOutputStream bufferedOutputStream = null;byte[] b = new byte[1024];try {// 将要复制文件输入到缓冲输入流bufferedInputStream = new BufferedInputStream(new FileInputStream(oldDir));// 将复制的文件定义为缓冲输出流bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(newDir));// 定义字节数int len;while ((len = bufferedInputStream.read(b)) > -1) {// 写入文件bufferedOutputStream.write(b, 0, len);}//刷新此缓冲输出流bufferedOutputStream.flush();} catch (IOException e) {e.printStackTrace();} finally {if (bufferedInputStream != null) {try {// 关闭流bufferedInputStream.close();} catch (IOException e) {e.printStackTrace();}}if (bufferedOutputStream != null) {try {bufferedOutputStream.close();} catch (IOException e) {e.printStackTrace();}}}}

下面来测试一下复制E:/test的文件夹内容
在这里插入图片描述

public static void main(String[] args) {String oldDir = "E:/test";String newDir = "E:/testCopy";copyDir(oldDir, newDir);
}

执行之后可以看到,成功将test的文件复制到了testCopy文件夹中
在这里插入图片描述
至此,Java实现复制文件就完成了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/143676.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

系统封装制作

工具网址: 镜像下载: Windows 10 22H2 - MSDN - 山己几子木 (sjjzm.com)pe工具:【新提醒】优启通 v3.7.2022.0910(2022.10.14 发布)_IT天空原创软件_IT天空 (itsk.com)万能驱动:万能驱动 v7.22.0912.2&…

最新WIN10系统封装教程2019系列(三)——必要的系统调整

本教程共有8个系列 1. 定制母盘2. 虚拟机与母盘安装 3. 必要的系统调整 4. 手动优化5. 使用工具优化与清理6. 常规软件安装7. 封装8. 测试效果 母盘安装后我们需要进行必要的系统调整,以便让接下来的封装工作开展的更顺畅。比如文件交换,需要提前把封…

Windows镜像封装

一、首先设置网卡属性为DHCP 操作环境 通过云服务器或者外部镜像文件创建私有镜像时,如果云服务器或镜像文件所在虚拟机的网络配置是静态IP地址时,您需要修改网卡属性为DHCP,以使私有镜像发放的新云服务器可以动态获取IP地址。 说明&#x…

独自封装windows 10系统详细教程(二)

目录 作者语录: 三、调整系统设置 1、切换管理员账号 2、添加英文输入法 3、关闭windows自动更新 4、取消任务视图的历史记录 四、个性化设置(选择) 1、调整视觉效果 2、windows桌面壁纸/登录壁纸 3、OEM信息 作者语录: 这…

封装自己专属的真正的纯净版Windows系统过程记录(4)——进行封装

文章目录 工具准备封装第一阶段ES5S封装第二阶段前的调整ES5S封装第二阶段设置提前测试部署并进入桌面检查经过以上检查,没有问题,最终打包保存系统镜像文件恢复到最后一次快照,然后进入PE 按照下图步骤将C盘目标系统盘备份成WIM镜像文件即可…

windows系统封装

工具 vmware workstation15优启通 v3.6Easy Sysprep v5(ES5) 首先新建一个虚拟机,修改下虚拟机硬件配置,去掉无用硬件,添加一个光驱 光驱放入镜像,光驱1放入优启通PE的镜像,光驱2放入win10系…

2 files found with path ‘lib/arm64-v8a/libwechatbacktrace.so‘ from inputs

2 files found with path lib/arm64-v8a/libwechatbacktrace.so from inputs 解决方案,在app module的build.gradle里面的 android { } 块里面添加: packagingOptions {exclude lib/arm64-v8a/libwechatbacktrace.so} 如果有多个,就再增加行…

adc去质器什么意思_LOL:“ADC去质器”成为了赏金猎人的神器

都知道最近LOL更新了一次大的版本,不光是上线了一个全新的自带抢人头BUFF的辅助,还上线了很多备受期待的新装备。而其中“岚切”这件装备,在未上线之前就一直备受玩家的关注,因为从测试服曝光数据以来,这件装备似乎就成…

ADC工作原理及应用

逐次逼近型 离散化 自然界的模型信号一般都是连续的

adc去质器什么意思_LOL:这三个英雄就是“ADC去质器”,尤其第3个

搞笑的玩家无处不在,搞笑的游戏也是层出不穷,沙漠雕哥为大家寻找游戏中的搞笑玩家行为,以及搞笑的游戏作品。 英雄联盟在中国发展了8年,出了很多新鲜的玩法,也推出了很多新鲜的英雄,在刺客这方面也出了很多…

adc去质器什么意思_ADC后期伤害爆炸?这几个英雄轻松制裁,ADC去质器了解一下...

英雄联盟经过了多个版本的修改,现在版本可谓是刺客英雄的天下,对ADC这种前期弱势的英雄可不太友好。虽然A DC前期比较弱势,但后期的ADC伤害非常爆炸,团战更是威胁最大的英雄。后期ADC伤害爆炸,选择几个英雄能够让ADC瞬…

PYTHON爬取斗鱼英雄联盟所有在玩adc的主播房间信息

Python爬取斗鱼英雄联盟所有玩adc的主播房间信息并用redis存储数据 最近想要用巩固下json数据的提取以及数据的存储,于是选了斗鱼作为研究对象。。 下面就是所有要爬取的adc,当然有个别adc没人玩就不爬不了。 首先观察下虚空之女和赏金猎人这两个英雄的…

photoshopcs6安装包

网上找这个特别麻烦,好多限制,而且你还不一定能装上。我分享个精简版的,实用性强 百度网盘地址: https://pan.baidu.com/s/1vzTHIK8fZg9RamdcikbdSw 提取码:k7d8

Adobe Premiere Pro cs6 精简版 0xc000007b 应用程序无法正常启动

失败方法记录 法1、把Adobe PS CS6 目录.dll文件拷贝,粘贴到Adobe Premiere CS6目录下 信息不对称,失败 法2、下载驱动人生等安装组件 看来驱动人生没有发现倪端,失败! 法3、修改环境变量? 别说了,失败 正…

Photoshop CS5软件安装教程

Photoshop CS5(32/64位)精简版下载地址: 链接:https://pan.baidu.com/s/11T-L-aH3JNXlJmSqL0JY6Q 提取码:ea5j Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图…

ps进阶

若想探究ps更炫酷的技能,请往下读吧。 文章目录 一、滤镜安装及Camera Raw使用二、笔刷安装三、快速制作GTA风格的画报四、3D建模 一、滤镜安装及Camera Raw使用 Adobe Camera Raw是一款编辑RAW文件编辑的强大工具。raw是单反数码相机所生成的RAW格式文件。安装上…

C51精简版教程(AT89C51/STC89C52)

文章目录 第一章:AT89S52(STC89C52)的引脚功能介绍第二章:51的存储器结构(89s52或90C52RC为例)第三章: C51的语法基础第四章:IO口输入输出原理第五章: 内部资源之外部中断第六章:内部…

jre7精简

转自http://blog.csdn.net/xiaoping8411/article/details/6973887 前不久给朋友做了一个桌面程序,程序文件没多大,但运行java程序需要jre,但jre足足有80M多,然后在网上搜了如何给给JRE瘦身或精简JRE,整理如下&#xff…

mysql 2005开发版_Microsoft SQL Server 2005简体中文开发版下载

Microsoft SQL Server 2005 开发版使开发人员能够在32位和X64平台的基础上建立和测试任意一种基于SQL Server 的应用系统。它包括企业版所有功能,但只被授权用于开发和测试系统,不能作为生产服务器。开发版可被升级至SQL Server 企业版以用于生产。 Microsoft 已重新设计了 S…

计算机2级ps真题百度云,【百度盘】Adobe Photoshop 2020 释怀特别版 | 21.2.1.265 | 633MB...

免责声明:本系列软件仅供个人测试使用,不保证软件稳定性,欢迎大家支持和使用正版。 软件修改概况(以下修改内容适用释怀的2018、2020版) -精简运行库及更新组件; -精简创意云Creative Cloud Libraries组件及插件; -精简…