不用说了,又是一个经常用到的方法,直接上码了。。。敬请各位小主参阅!若有不足,敬请指正,非常感谢!

文件拷贝源码:

     /**
* <strong>文件拷贝</strong><br>
* <br>
* @author Aaron.ffp
* @version V1.0.0: autotest-base cn.ffp.autotest.base.util FileUtils.java copy, 2016-03-19 12:47:38.299 Exp $
*
* @param srcFile 源文件
* @param desFile 目标文件
* @param override 是否覆盖
*
* @return boolean 成功复制返回 true;否则返回 false
*/
public static boolean copy(String srcFile, String desFile, boolean override) {
boolean success = false; InputStream is = null;
OutputStream os = null; if (StringUtils.isBlank(srcFile) || StringUtils.isBlank(desFile)) {
msg = "参数非法:源文件【" + srcFile + "】或目标文件【" + desFile + "】不可为空、null、Tab、回车等,请确认!";
logger.error(msg);
return success;
} try {
File src = new File(srcFile);
File des = new File(desFile); // 判断源文件是否存在且为文件
if (!src.exists() || src.isDirectory()) {
msg = "文件拷贝失败:源文件【" + srcFile + "】不存在或者为目录,请确认!";
logger.error(msg);
return success;
} // 判断目标文件是否存在且为文件
if (des.isDirectory()) {
msg = "文件拷贝失败:目标文件【" + desFile + "】为目录,请确认!";
logger.error(msg);
return success;
} else if (des.exists() && !override) {
msg = "文件拷贝失败:目标文件【" + desFile + "】已存在,且您未允许覆盖目标文件,请知悉!";
logger.warn(msg);
return success;
} des.delete(); // 创建目标文件所在目录
if (!FileUtils.createFolder(des.getParent())) {
msg = "文件拷贝时创建目标文件【" + desFile + "】目录失败...";
logger.error(msg);
return success;
} is = new FileInputStream(src);
os = new FileOutputStream(des);
int readByte = 0; byte[] buffer = new byte[2048]; while ((readByte = is.read(buffer)) != -1 ) {
os.write(buffer, 0, readByte);
} success = true; msg = "成功拷贝文件:【" + srcFile + "】至【" + desFile + "】,请知悉!";
logger.info(msg);
} catch (FileNotFoundException fnfe) {
msg = "文件拷贝失败:" + fnfe.getMessage();
logger.error(msg, fnfe);
return success;
} catch (IOException ioe) {
msg = "文件拷贝失败:" + ioe.getMessage();
logger.error(msg, ioe);
return success;
} finally {
try {
if (os != null) {
os.close();
} if (is != null) {
is.close();
}
} catch (IOException ioe) {
msg = "文件拷贝成功后,释放资源失败:" + ioe.getMessage();
logger.warn(msg, ioe); return success;
}
} return success;
}

文件拷贝单元测试源码:

     @Test(description="public static boolean FileUtils.copy(String srcFile, String desFile, boolean override) ---> 破坏性:文件已存在,且允许覆盖\n", dependsOnMethods="test_copy_desFileExists")
public void test_copy_desFileOverride() {
String srcFile = ConstantInfo.PROJECT_RESOURCES_HOME + "js" + ConstantInfo.OS_FILE_SEPARATOR + "color.js";
String desFile = this.baseDir + "color-copy.js"; Assert.assertTrue(FileUtils.copy(srcFile, desFile, true));
} @Test(description="public static boolean FileUtils.copy(String srcFile, String desFile, boolean override) ---> 破坏性:文件已存在,且不允许覆盖\n", dependsOnMethods="test_copy_ok")
public void test_copy_desFileExists() {
String srcFile = ConstantInfo.PROJECT_RESOURCES_HOME + "js" + ConstantInfo.OS_FILE_SEPARATOR + "color.js";
String desFile = this.baseDir + "color-copy.js"; Assert.assertFalse(FileUtils.copy(srcFile, desFile, false));
} @Test(description="public static boolean FileUtils.copy(String srcFile, String desFile, boolean override) ---> 通过性\n")
public void test_copy_ok() {
String srcFile = ConstantInfo.PROJECT_RESOURCES_HOME + "js" + ConstantInfo.OS_FILE_SEPARATOR + "color.js";
String desFile = this.baseDir + "color-copy.js"; Assert.assertTrue(FileUtils.copy(srcFile, desFile, false));
} @Test(description="public static boolean FileUtils.copy(String srcFile, String desFile, boolean override) ---> 破坏性:文件为目录\n")
public void test_copy_srcIsDirectory() {
String srcFile = ConstantInfo.PROJECT_RESOURCES_MAIN + "js" + ConstantInfo.OS_FILE_SEPARATOR;
String desFile = this.baseDir + "color-copy.js"; Assert.assertFalse(FileUtils.copy(srcFile, desFile, false));
} @Test(description="public static boolean FileUtils.copy(String srcFile, String desFile, boolean override) ---> 破坏性:文件不存在\n")
public void test_copy_srcNotExist() {
String srcFile = ConstantInfo.PROJECT_RESOURCES_MAIN + "js" + ConstantInfo.OS_FILE_SEPARATOR + "color.js";
String desFile = this.baseDir + "color-copy.js"; Assert.assertFalse(FileUtils.copy(srcFile, desFile, false));
}

文件拷贝单元测试源码

至此, Java学习-044-文件拷贝 顺利完结,希望此文能够给初学 Java 的您一份参考。

最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

Java学习-044-文件拷贝的更多相关文章

  1. Java学习-022-Properties 文件数据写入

    Properties 配置文件写入主要通过 Properties.setProperty 和 Properties.store 两个方法,此文以一个简单的 properties 文件写入源码做示例. ...

  2. Java学习-019-Properties 文件读取实例源代码

    在这几天的学习过程中,有开发的朋友告知我,每个编程语言基本都有相应的配置文件支持类,像 Python 编程语言中支持的 ini 文件及其对应的配置文件读取类 ConfigParse,通过这个类,用户可 ...

  3. Java学习-018-EXCEL 文件写入实例源代码

    众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...

  4. Java学习-017-EXCEL 文件读取实例源代码

    众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...

  5. Java学习-016-CSV 文件读取实例源代码

    上文(CSV文件写入)讲述了日常自动化测试过程中将测试数据写入 CSV 文件的源码,此文主要讲述如何从 CSV 文件获取测试过程中所需的参数化数据.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感 ...

  6. Java学习-015-CSV 文件写入实例源代码

    在日常的自动化测试脚本编写的过程中,有时要将获取的测试结果或者测试数据存放在数据文件中,以用作后续的参数化测试.常用的文件文件类型无非 txt.csv.xls.properties.xml 这五种文件 ...

  7. java中把文件拷贝到指定目录下最简单几种方法

    java中把文件拷贝到指定目录下最简单几种方法   String savePath = "D:/file";// 文件保存到d盘的file目录下 File savefile = n ...

  8. Java IO 流-- 文件拷贝

    IO流操作套路: 1.创建源: 2.选择流: 3.操作: 4.释放资源 上代码: package com.xzlf.io; import java.io.File; import java.io.Fi ...

  9. Java IO和Java NIO在文件拷贝上的性能差异分析

    1.  在JAVA传统的IO系统中,读取磁盘文件数据的过程如下: 以FileInputStream类为例,该类有一个read(byte b[])方法,byte b[]是我们要存储读取到用户空间的缓冲区 ...

随机推荐

  1. ccc prefab

    MonsterPrefab.js var Helpers = require('Helpers'); cc.Class({ extends: cc.Component, properties: { s ...

  2. df卡住问题解决

    windows的share文件挂载到linux/mnt/share下,当windows重启,会导致df卡住. 运行           1 umount -l /mnt/share 2 killall ...

  3. JS保留小数点(四舍五入、四舍六入)实例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  4. [题解+总结]NOI2015

    // 此博文为迁移而来,写于2015年7月20日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w6u7.html 1.总 ...

  5. 【BZOJ】1109: [POI2007]堆积木Klo

    题意 \(n(1 \le n \le 100000)\)个数放在一排,可以一走一些数(后面的数向前移),要求最大化\(a_i=i\)的数目. 分析 分析容易得到一个dp方程. 题解 \(d(i)\)表 ...

  6. Js:DOM对象操作常用的方法和属性

  7. 【noiOJ】p6253

    t6253:用二分法求方程的根 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 用二分法求下面方程在(-10, 10)之间的一个根. 2x3- 4x2+ 3x ...

  8. POJ 1321 简单dfs

    1.POJ 1321  棋盘问题 2.总结: 题意:给定棋盘上放k个棋子,要求同行同列都不重. #include<iostream> #include<cstring> #in ...

  9. 关于Autoit上传文件的问题

    Autoit上传文件需要安装两个软件: 使用这个做文件上传时:在代码中需要添加的代码如下: Runtime.getRuntime().exec("d:/zhpg.exe"); D盘 ...

  10. CentOS6设置密码过期时间

    #密码过期时间180天chage -M 180 rootchage -l rootchage -M 180 gwchage -l gw