`
zhoushu126
  • 浏览: 81712 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

文件工具箱(摘)

阅读更多
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import java.io.*;

/**
* 文件工具箱
*/
public final class FileToolkit {
	private static final Log log = LogFactory.getLog(FileToolkit.class);

	/**
	 * 复制文件或者目录,复制前后文件完全一样。
	 * 
	 * @param resFilePath
	 *            源文件路径
	 * @param distFolder
	 *            目标文件夹
	 * @IOException 当操作发生异常时抛出
	 */
	public static void copyFile(String resFilePath, String distFolder)
			throws IOException {
		File resFile = new File(resFilePath);
		File distFile = new File(distFolder);
		if (resFile.isDirectory()) {
			FileUtils.copyDirectoryToDirectory(resFile, distFile);
		} else if (resFile.isFile()) {
			FileUtils.copyFileToDirectory(resFile, distFile, true);
		}
	}

	/**
	 * 删除一个文件或者目录
	 * 
	 * @param targetPath
	 *            文件或者目录路径
	 * @IOException 当操作发生异常时抛出
	 */
	public static void deleteFile(String targetPath) throws IOException {
		File targetFile = new File(targetPath);
		if (targetFile.isDirectory()) {
			FileUtils.deleteDirectory(targetFile);
		} else if (targetFile.isFile()) {
			targetFile.delete();
		}
	}

	/**
	 * 移动文件或者目录,移动前后文件完全一样,如果目标文件夹不存在则创建。
	 * 
	 * @param resFilePath
	 *            源文件路径
	 * @param distFolder
	 *            目标文件夹
	 * @IOException 当操作发生异常时抛出
	 */
	public static void moveFile(String resFilePath, String distFolder)
			throws IOException {
		File resFile = new File(resFilePath);
		File distFile = new File(distFolder);
		if (resFile.isDirectory()) {
			FileUtils.moveDirectoryToDirectory(resFile, distFile, true);
		} else if (resFile.isFile()) {
			FileUtils.moveFileToDirectory(resFile, distFile, true);
		}
	}

	/**
	 * 重命名文件或文件夹
	 * 
	 * @param resFilePath
	 *            源文件路径
	 * @param newFileName
	 *            重命名
	 * @return 操作成功标识
	 */
	// public static boolean renameFile(String resFilePath, String newFileName)
	// {
	// String newFilePath =
	// StringToolkit.formatPath(StringToolkit.getParentPath(resFilePath) + "/" +
	// newFileName);
	// File resFile = new File(resFilePath);
	// File newFile = new File(newFilePath);
	// return resFile.renameTo(newFile);
	// }

	/**
	 * 读取文件或者目录的大小
	 * 
	 * @param distFilePath
	 *            目标文件或者文件夹
	 * @return 文件或者目录的大小,如果获取失败,则返回-1
	 */
	public static long genFileSize(String distFilePath) {
		File distFile = new File(distFilePath);
		if (distFile.isFile()) {
			return distFile.length();
		} else if (distFile.isDirectory()) {
			return FileUtils.sizeOfDirectory(distFile);
		}
		return -1L;
	}

	/**
	 * 判断一个文件是否存在
	 * 
	 * @param filePath
	 *            文件路径
	 * @return 存在返回true,否则返回false
	 */
	public static boolean isExist(String filePath) {
		return new File(filePath).exists();
	}

	/**
	 * 本地某个目录下的文件列表(不递归)
	 * 
	 * @param folder
	 *            ftp上的某个目录
	 * @param suffix
	 *            文件的后缀名(比如.mov.xml)
	 * @return 文件名称列表
	 */
	public static String[] listFilebySuffix(String folder, String suffix) {
		IOFileFilter fileFilter1 = new SuffixFileFilter(suffix);
		IOFileFilter fileFilter2 = new NotFileFilter(
				DirectoryFileFilter.INSTANCE);
		FilenameFilter filenameFilter = new AndFileFilter(fileFilter1,
				fileFilter2);
		return new File(folder).list(filenameFilter);
	}

	/**
	 * 将字符串写入指定文件(当指定的父路径中文件夹不存在时,会最大限度去创建,以保证保存成功!)
	 * 
	 * @param res
	 *            原字符串
	 * @param filePath
	 *            文件路径
	 * @return 成功标记
	 */
	public static boolean string2File(String res, String filePath) {
		boolean flag = true;
		BufferedReader bufferedReader = null;
		BufferedWriter bufferedWriter = null;
		try {
			File distFile = new File(filePath);
			if (!distFile.getParentFile().exists())
				distFile.getParentFile().mkdirs();
			bufferedReader = new BufferedReader(new StringReader(res));
			bufferedWriter = new BufferedWriter(new FileWriter(distFile));
			char buf[] = new char[1024]; // 字符缓冲区
			int len;
			while ((len = bufferedReader.read(buf)) != -1) {
				bufferedWriter.write(buf, 0, len);
			}
			bufferedWriter.flush();
			bufferedReader.close();
			bufferedWriter.close();
		} catch (IOException e) {
			flag = false;
			e.printStackTrace();
		}
		return flag;
	}
} 
 
分享到:
评论

相关推荐

    Nitro.Pro.13.50.4.1013.Enterprise.rar

    Nitro Pro Enterprise 是一款功能全面的PDF工具箱,拥有阅读,编辑,创建,增加批注优化等等功能与一体,轻松解决了用户遇到pdf文档时问题全部解决. 软件功能特色: - 完整的编辑功能 (书签、链结、浮水印、文字框、图片...

    Nitro.Pro.13.46.0.937.Ent.rar

    Nitro Pro Enterprise 是一款功能全面的PDF工具箱,拥有阅读,编辑,创建,增加批注优化等等功能与一体,轻松解决了用户遇到pdf文档时问题全部解决. 软件功能特色: - 完整的编辑功能 (书签、链结、浮水印、文字框、图片...

    Nitro Pro 13.42.3.855 Enterprise.rar

    Nitro Pro Enterprise 是一款功能全面的PDF工具箱,拥有阅读,编辑,创建,增加批注优化等等功能与一体,轻松解决了用户遇到pdf文档时问题全部解决. 软件功能特色: - 完整的编辑功能 (书签、链结、浮水印、文字框、图片...

    二抽取代码MATLAB-BioFIND-data-paper:该存储库包含BioFIND数据文件的MATLAB脚本

    二摘代码MATLAB ...在下载资源库之前:要求您首先从()中下载并设置OSL工具箱,其中包括SPM工具箱()。 根据下载OSL的方式,您需要将OSL的根目录重命名为“ osl”并将其放置在当前目录中。 这应该是一个名为os

    matlab coder interface for deep learnig 离线安装

    1. **下载离线安装包**:首先,你需要在有网络连接的电脑上访问MathWorks官网,选择相应的MATLAB版本和附加工具(如深度学习工具箱和Coder),并下载适用于目标系统的离线安装文件。 2. **传输安装文件**:将下载的...

    二抽取代码MATLAB-m2html:M2HTML:MATLAB和Octave的文档系统

    该工具箱旨在提供自动生成HTML中的M文件文档的功能。 它读取一组目录中的每个M文件(最终以递归方式)以生成相应HTML文件,其中包含概要,H1行,帮助,函数调用和带有超文本链接的被调用函数,带有超文本的语法突出...

    数学建模列车调度问题的MATLAB模拟程序实现

    在MATLAB中,可以使用优化工具箱(Optimization Toolbox)来构建和求解此类优化问题。例如,可以使用线性规划(Linear Programming)、整数规划(Integer Programming)或混合整数线性规划(Mixed-Integer Linear ...

    MATLAB常见问题大全

    MATLAB Compiler 可以将脚本和函数编译为独立应用程序,但需要安装相应的工具箱。 12. **matlab GUI 程序转换成 exe 可执行文件** 同上,使用 MATLAB Compiler 创建独立的 GUI 应用程序。 13. **GUI 生成独立的...

    Matlab数字图像处理技术论文(27篇)主要关于图像增强(上)

    要集中在它的图像处理工具箱(Image Processing Toolbox)中。 图 [摘 要] 讨论了数字图像增强技术中空域图像锐化的四种算 法及其用MATLAB的实现;同时给出了利用四种算法进行图像锐化 后的对照图像。 [关键词] ...

    150张违章漫画,比培训更有效.docx,这是一份不错的文件

    8. 绝缘用具:带电作业期间不能摘下绝缘防护用具,确保安全。 9. 操作电器:禁止湿手操作电器,以防触电。 10. 机械安全:机械运转时不得进行皮带调整或润滑,以免发生事故。 11. 防护罩:机械设备的转动部分应有...

    大模板和大板施工安全技术操作规程.docx

    - 大模板应设有操作平台、梯道、防护栏杆和工具箱,确保工作安全。 2. 模板存放要求: - 大模板存放时地脚螺栓应提起,形成70-80度的自稳角,底部垫木方。 - 长期存放应用拉杆固定,楼层存放需挂钢丝绳或使用...

    二抽取代码MATLAB-CNN_SS:CNN_SS

    MATLAB油藏模拟工具箱(MRST) 数据 由于数据文件的大小很大,因此不会上传数据文件(实现和PCA基础)。 请给我发电子邮件(),以获取对它们的访问权限。 2D示例:河流系统 3D示例:SAIGUP模型 引文 如果发现有用的...

    二抽取代码MATLAB-angicart-biological-scaling:包含MATLAB代码,可使用生物比例尺理论分析血管成像技术的输

    Learning工具箱 运行calcAll.m以生成单个数据集的所有图(将cName更改为C ++数据的文件名,将aName更改为Angicart数据的文件名) compareLen.m和compareRad.m生成直方图以比较血管长度和血管半径 ratioBased.m,...

    二抽取代码MATLAB-PFOpt:多项式过滤的优化求解器

    PFOpt是一个MATLAB工具箱,用于使用多项式滤波子空间提取来解决大规模的低秩优化问题。 问题与解决方案 PFOpt可以插入需要特征值分解的任何优化求解器中。 我们在包装中提供了两个示例求解器PFPG(多项式过滤的近端...

    Autodesk制造业产品手册

    该章节包含了工具箱的使用、自动化特征、标准零件库等方面的案例分析。 - **“生产力的全面比较”指南**:通过对不同设计软件的比较,展示了Autodesk产品的优势所在,尤其是在提高生产率方面。 - **Inventor效率手册...

    现场钢筋安装安全技术交底.doc

    1. **工具使用安全**:在人工断料过程中,工具如錾子和锤子必须保持牢固,操作者应站成斜角来使用,避免直接面向他人或物体,以防飞溅造成伤害。对于小于30cm的短钢筋,应用钳子固定,避免直接用手操作,并设置防护...

    麦肯锡卓越工作方法

    先摘好摘的果子** - 优先处理最容易解决的问题,这不仅能快速获得成果,还能提升团队的信心。 - 这种方法有助于保持动力,并为解决更复杂的问题积累经验和资源。 **3. 重要的少数与琐碎的多数** - 帕累托原则...

    电机车技术操作规程.docx

    电机车技术操作规程是指导电机车安全高效运行的重要文件,主要涵盖了电机车的日常检查、启动与运行、行驶过程中的注意事项、停机方法以及安全操作等多个方面。以下是对这些知识点的详细阐述: 1. **交接班检查**:...

    程控交换原理实验指导书正文

    在这个对话框中,可以配置的系统数据包括各种超时数据,久不拨号时间、久不应答时间、位间隔时间、系统轮询时间、收号检测轮询时间、摘挂机检测轮询时间等。 4. 用户参数设置 用户参数设置是程控交换演示软件的...

    煤业机电设备下井运输安全技术措施.docx

    对于溜子机头、变速箱等大型设备,则必须进行解体运输,分装分运,且在装车前对部件进行编号,按照顺序装车,每车只限装1件大型设备。所有起吊工具在使用前,必须进行非破坏性拉力试验,保证其安全可靠性。 二、...

Global site tag (gtag.js) - Google Analytics