`
远东之夜
  • 浏览: 7804 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

文件的拷贝Util

阅读更多
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环境下利用线程池实现大批量文件拷贝

    在Linux环境下,面对大批量文件拷贝的任务时,传统的方式可能会因为频繁的文件打开、读取、关闭操作导致系统资源的过度消耗,从而影响整体性能。此时,采用线程池技术可以有效地解决这一问题,提高文件拷贝的效率。...

    线程池拷贝显示树状图.zip

    本项目“线程池拷贝显示树状图.zip”涉及到的关键知识点包括线程池、文件拷贝、树状图显示以及文件I/O操作,这些都是系统编程中的重要组成部分。 1. **线程池**: 线程池是由一组预先创建的线程组成的,可以重用这些...

    FileUploadUtil.java(文件上传工具类)

    文件上传工具类,上传文件,上传导入文件到path文件夹下,判断图片大小是否...将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下 ,拷贝指定文件到另一文件中,保存图片

    java常用util工具类

    最后,`ObjectUtil`工具类通常包含一些通用的面向对象的辅助方法,例如,`equals()`和`hashCode()`的实现可以帮助我们快速比较两个对象是否相等,`clone()`可以实现对象的浅拷贝或深拷贝,`isNull()`和`isNotNull()`...

    前端开源库-topolr-util

    使用topolr-util非常简单,通常通过引入库文件或者npm安装后import/require引入。例如,要实现一个对象深拷贝,可以这样写: ```javascript var topolr = require("topolr-util"); var obj = {a: 1, b: {c: 2}}; ...

    Java常用Util类

    9. **Arrays**: 提供数组操作的工具类,如排序、填充、拷贝、比较等。 10. **File**: 表示文件和目录路径名的抽象表示形式,提供了文件和目录的基本操作。 11. **Scanner**: 用于从输入源(如键盘、文件)读取用户...

    Java.util包.docx

    在本文件中,我们主要关注Java.util.ArrayList类,这是一个常用的动态数组实现,它提供了灵活的大小调整和高效的操作性能。 ArrayList类是List接口的一个实现,这意味着它支持所有List接口定义的操作。ArrayList的...

    JAVA SFTP文件上传、下载及批量下载实例

    在实际应用中,我们可以根据需要封装成一个util类,提供给其他应用程序使用。这可以使得我们的代码更加简洁、易懂、易维护。 本篇文章主要介绍了JAVA SFTP文件上传、下载及批量下载的实例,包括JSch库的使用、SFTP...

    文件复制、显示及修改java代码

    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)来减小存储需求。在用户首次启动应用...

    java命令行文件管理器

    4. **文件拷贝**:拷贝文件功能允许用户将一个文件复制到另一个位置,这对于备份或移动文件非常有用。 5. **打开路径**:用户可以查看当前工作目录或者切换到其他目录,方便在不同的文件夹之间导航。 6. **压缩与...

    Java poi复制execl的sheet页,跨文件操作,数据和样式全部复制,工具类

    在Java开发中,Apache POI库是一个非常实用的工具,用于读取、写入和修改Microsoft Office格式的文件,特别是Excel文件(.xlsx和.xls)。本篇将详细讲解如何使用POI库进行Excel的Sheet页复制,包括数据和样式的跨...

    Java常用工具包 Jodd

    4. **字符串操作**:StringUtil是Jodd提供的字符串处理工具,包含了一系列方便的静态方法,如分割、替换、去除空白、检查格式等,极大地增强了Java字符串处理的能力。 5. **I/O流**:IoUtil是处理输入/输出流的利器...

    java文件上传例子

    3、将Source下的DateUtils类拷贝到新建的包smart.jrsoft.util里面。 5、将Enviroument里面的ahxu-commons-fileuploadex-beta2.jar、commons-fileupload.jar拷贝到WebRoot-->Web-Info-->lib里面。 6、将Jsp包中的四个...

    前端项目-javascript.util.zip

    【文件列表】:“javascript.util-master”可能代表这是项目的主分支或者稳定版本,通常包含源代码、测试用例、文档和其他必要的资源。开发者可以通过查看源码来了解如何使用这些工具,通过测试用例验证功能是否正常...

    java Util

    6. `Collections`和`Arrays`:这两个工具类提供了对集合和数组的各种操作,如排序、填充、拷贝等。 7. `Random`:生成随机数的类,对于模拟、测试和游戏开发等场景非常有用。 8. `Thread`和`ExecutorService`:...

    Linux tomcat下catalina.out日志文件分割

    Linux tomcat下catalina.out日志文件分割 前言: tomcat默认使用Java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志。tomcat支持采用log4j进行日志记录,配置方法如下: 1.更新最新的tomcat_juli...

    Java文件管理系统源码.zip

    Java的`java.util.zip`包提供了对ZIP文件格式的支持。`ZipOutputStream`用于创建ZIP文件,`ZipInputStream`用于读取ZIP文件。对于更复杂的压缩格式,如GZIP或TAR,可以使用`GZIPOutputStream`和`...

    Java中常用的代码汇总-WPS Office.pdf

    使用 NIO 的 `FileChannel` 类可以实现快速的文件拷贝操作。需要注意的是,在拷贝文件时需要捕获 `IOException` 异常,并且在 finally 块中关闭文件流,以免资源泄露。 本文总结的这些代码都是 Java 开发中常见的...

    ExtJS之实现华丽的皮肤主题更换

     把皮肤文件解压 把css文件 如xtheme olive css 拷贝到extjs的resources目录下css文件夹里面:">extjs的默认皮肤很好看 但是我们还可以变换样式切换其他皮肤  1 直接添加其他css文件换肤 好多皮肤上网就可以收到的...

Global site tag (gtag.js) - Google Analytics