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

文件拷贝源码:

     /**
* <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. BZOJ4384 : [POI2015]Trzy wieże

    首先只有一种字符的情况可以通过双指针在$O(n)$的时间内处理完毕. 设$cnt[i][j]$表示前$i$个字符中$j$字符出现的次数,那么对于两个位置$j<i$: 如果 $cnt[i][0]- ...

  2. hadoop2.2.0 + hbase 0.94 + hive 0.12 配置记录

    一开始用hadoop2.2.0 + hbase 0.96 + hive 0.12 ,基本全部都配好了.只有在hive中查询hbase的表出错.以直报如下错误: java.io.IOException: ...

  3. 洛谷 洛谷 P1011 车站 Label:续命模拟QAQ 未知50分

    题目描述 火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上.下车,但上.下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人.从第3站起( ...

  4. HDU-I Hate It

    Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写 ...

  5. js的隐含参数(arguments,callee,caller)使用方法

    在提到上述的概念之前,首先想说说javascript中函数的隐含参数: arguments arguments 该对象代表正在执行的函数和调用它的函数的参数.[function.]arguments[ ...

  6. 神奇的莫比乌斯带(mobius)

    1.禅师和青年之间的对话 2.制作一个莫比乌斯带 3.神奇的莫比乌斯带 4.对莫比乌斯带进行简单的数学建模 1.禅师和青年之间的对话 青年问禅师:“大师,我很爱我的女朋友,她也有很多优点,但是总有几个 ...

  7. spin_lock 和 spin_lock_irqsave

    一  .spin_lock_irqsave . spin_unlock_irqrestore 如果自旋锁在中断处理函数中被用到,那么在获取该锁之前需要关闭本地中断,spin_lock_irqsave ...

  8. Selenium_Selenium WebDriver 中鼠标和键盘事件分析及扩展

    在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 W ...

  9. Qt Write and Read XML File 读写XML文件

    在Qt中,我们有时候需要把一些参数写入xml文件,方便以后可以读入,类似一种存档读档的操作,例如,我们想生成如下的xml文件: <?xml version="1.0" enc ...

  10. java二叉树的实现和遍历

    /* * Java实现二叉树 */ public class BinaryTree { int treeNode; BinaryTree leftTree; BinaryTree rightTree; ...