package com.tianmushanlu.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* 文件的拷贝Util
*
*
*
*/
public class FileUtility extends FileUtils {
protected static final Log log = LogFactory.getLog(FileUtility.class);
/**
* 将源文件拷贝至指定目录并重新命名
* @param srcFile
* @param destDir
* @param newFileName
* @return
*/
public static long copyFile(File srcFile, File destDir, String newFileName) {
long copySizes = 0;
if (!srcFile.exists())//如果源文件不存在
{
copySizes = -1;
log.error("源文件:" + "[->]" + srcFile.getName() + "不存在");
}
else if (!destDir.exists())//如果目标目录不存在
{
log.error("目标目录:" + "[->]" + destDir.getName() + "不存在");
try {
log.error("目标目录:" + "[->]" + destDir.getName() + "创建中......");
destDir.createNewFile();
log.error("目标目录:" + "[->]" + destDir.getName() + "创建成功!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
copySizes = -1;
log.error("目标目录:" + "[->]" + destDir.getName() + "创建失败!" + e.getMessage());
}
}
else if (newFileName == null)//如果源文件为空
{
copySizes = -1;
log.error("新文件名为:" + "[->]" + newFileName);
}
else
{
try
{
//使用nio的形式进行文件的拷贝
FileChannel fcin = new FileInputStream(srcFile).getChannel();
FileChannel fcout = new FileOutputStream(new File(destDir, newFileName)).getChannel();
long size = fcin.size();
fcin.transferTo(0, fcin.size(), fcout);
fcin.close();
fcout.close();
copySizes = size;
} catch (FileNotFoundException e) {
e.printStackTrace();
copySizes = -1;
log.error("文件没有找到:" + "[->]" + e.getMessage());
} catch (IOException e) {
e.printStackTrace();
copySizes = -1;
log.error("IO异常:" + "[->]" + e.getMessage());
}
}
return copySizes;
}
}
分享到:
相关推荐
在Linux环境下,面对大批量文件拷贝的任务时,传统的方式可能会因为频繁的文件打开、读取、关闭操作导致系统资源的过度消耗,从而影响整体性能。此时,采用线程池技术可以有效地解决这一问题,提高文件拷贝的效率。...
本项目“线程池拷贝显示树状图.zip”涉及到的关键知识点包括线程池、文件拷贝、树状图显示以及文件I/O操作,这些都是系统编程中的重要组成部分。 1. **线程池**: 线程池是由一组预先创建的线程组成的,可以重用这些...
文件上传工具类,上传文件,上传导入文件到path文件夹下,判断图片大小是否...将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下 ,拷贝指定文件到另一文件中,保存图片
最后,`ObjectUtil`工具类通常包含一些通用的面向对象的辅助方法,例如,`equals()`和`hashCode()`的实现可以帮助我们快速比较两个对象是否相等,`clone()`可以实现对象的浅拷贝或深拷贝,`isNull()`和`isNotNull()`...
使用topolr-util非常简单,通常通过引入库文件或者npm安装后import/require引入。例如,要实现一个对象深拷贝,可以这样写: ```javascript var topolr = require("topolr-util"); var obj = {a: 1, b: {c: 2}}; ...
9. **Arrays**: 提供数组操作的工具类,如排序、填充、拷贝、比较等。 10. **File**: 表示文件和目录路径名的抽象表示形式,提供了文件和目录的基本操作。 11. **Scanner**: 用于从输入源(如键盘、文件)读取用户...
在本文件中,我们主要关注Java.util.ArrayList类,这是一个常用的动态数组实现,它提供了灵活的大小调整和高效的操作性能。 ArrayList类是List接口的一个实现,这意味着它支持所有List接口定义的操作。ArrayList的...
在实际应用中,我们可以根据需要封装成一个util类,提供给其他应用程序使用。这可以使得我们的代码更加简洁、易懂、易维护。 本篇文章主要介绍了JAVA SFTP文件上传、下载及批量下载的实例,包括JSch库的使用、SFTP...
import java.util.List; public class ModifyTXTFile { public static void main(String[] args) { Path filePath = Paths.get("input.txt"); try (BufferedReader reader = new BufferedReader(new FileReader...
当用户安装应用时,Android系统会自动解压Apk,并将所有资源文件拷贝到设备的指定目录。 对于大型数据文件,如地图瓦片或者地理数据库,通常会采用压缩格式(如.zip或.tar.gz)来减小存储需求。在用户首次启动应用...
4. **文件拷贝**:拷贝文件功能允许用户将一个文件复制到另一个位置,这对于备份或移动文件非常有用。 5. **打开路径**:用户可以查看当前工作目录或者切换到其他目录,方便在不同的文件夹之间导航。 6. **压缩与...
在Java开发中,Apache POI库是一个非常实用的工具,用于读取、写入和修改Microsoft Office格式的文件,特别是Excel文件(.xlsx和.xls)。本篇将详细讲解如何使用POI库进行Excel的Sheet页复制,包括数据和样式的跨...
4. **字符串操作**:StringUtil是Jodd提供的字符串处理工具,包含了一系列方便的静态方法,如分割、替换、去除空白、检查格式等,极大地增强了Java字符串处理的能力。 5. **I/O流**:IoUtil是处理输入/输出流的利器...
3、将Source下的DateUtils类拷贝到新建的包smart.jrsoft.util里面。 5、将Enviroument里面的ahxu-commons-fileuploadex-beta2.jar、commons-fileupload.jar拷贝到WebRoot-->Web-Info-->lib里面。 6、将Jsp包中的四个...
【文件列表】:“javascript.util-master”可能代表这是项目的主分支或者稳定版本,通常包含源代码、测试用例、文档和其他必要的资源。开发者可以通过查看源码来了解如何使用这些工具,通过测试用例验证功能是否正常...
6. `Collections`和`Arrays`:这两个工具类提供了对集合和数组的各种操作,如排序、填充、拷贝等。 7. `Random`:生成随机数的类,对于模拟、测试和游戏开发等场景非常有用。 8. `Thread`和`ExecutorService`:...
Linux tomcat下catalina.out日志文件分割 前言: tomcat默认使用Java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志。tomcat支持采用log4j进行日志记录,配置方法如下: 1.更新最新的tomcat_juli...
Java的`java.util.zip`包提供了对ZIP文件格式的支持。`ZipOutputStream`用于创建ZIP文件,`ZipInputStream`用于读取ZIP文件。对于更复杂的压缩格式,如GZIP或TAR,可以使用`GZIPOutputStream`和`...
使用 NIO 的 `FileChannel` 类可以实现快速的文件拷贝操作。需要注意的是,在拷贝文件时需要捕获 `IOException` 异常,并且在 finally 块中关闭文件流,以免资源泄露。 本文总结的这些代码都是 Java 开发中常见的...
把皮肤文件解压 把css文件 如xtheme olive css 拷贝到extjs的resources目录下css文件夹里面:">extjs的默认皮肤很好看 但是我们还可以变换样式切换其他皮肤 1 直接添加其他css文件换肤 好多皮肤上网就可以收到的...