`
eksliang
  • 浏览: 599579 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

FileUtils API

    博客分类:
  • java
阅读更多

转载请出自出处:http://eksliang.iteye.com/blog/2217374

一、概述

这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。

 

二、FileUtils读API

public static void main(String[] args) throws Exception {
		//读取文本文件的所有行到一个集合
		List<String> lines=FileUtils.readLines(new File("D:/fileUtis/aa.txt"),"utf-8");
		for (String s : lines) {
			System.out.println(s);
		}
		//读取文件内容到一个字符串
		String str = FileUtils.readFileToString(new File("D:/fileUtis/aa.txt"), "utf-8");
		System.out.println(str);
		//读取文件到一个byte数组
		FileUtils.readFileToByteArray(new File("D:/fileUtis/aa.txt"));
	}

 

 

三.FileUtils写API

public static void main(String[] args) throws Exception {
		//将字符写入到一个文件,文件不存在会创建;第三个参数:true:追加,false:覆盖
		FileUtils.write(new File("D:/fileUtis/targetFile/aa.txt"),"aa",false);
		//根据指定编码将字符写入到一个文件,文件不存在会创建;会覆盖
		FileUtils.write(new File("D:/fileUtis/targetFile/bb.txt"),"ickes","utf-8");
		//根据指定编码将字符写入到一个文件,文件不存在会创建;会覆盖
		FileUtils.write(new File("D:/fileUtis/targetFile/cc.txt"),"ickes","utf-8",true);
		//将一个字符串集合根据指定的分隔符写入到文件中,第四个参数是分隔符
		List<String> ss = new ArrayList<>();
		ss.add("aa");ss.add("bb");
		FileUtils.writeLines(new File("D:/fileUtis/targetFile/dd.txt"),"utf-8",ss, ",");
		//将一个字符串集合,一行一行写入到文件中,
		FileUtils.writeLines(new File("D:/fileUtis/targetFile/ee.txt"), "utf-8", ss,true);
	}

 

 四、FileUtils删除API

public static void main(String[] args) throws Exception {
		//删除一个目录和他的所有子目录,如果文件或者目录不存在会抛出异常
		FileUtils.deleteDirectory(new File("D:/fileUtis/targetFile/"));
		//删除一个目录或者一个文件,如果这个目录或者目录不存在不会抛出异常
		FileUtils.deleteQuietly(new File("D:/fileUtis/targetFile/"));
		//清除一个目录下面的所有文件跟目录。
		FileUtils.cleanDirectory(new File("D:/fileUtis/targetFile/"));
		//删除一个文件,如果是目录则递归删除forceDelete(File file),跟deleteDirectory基本一样
		FileUtils.forceDelete(new File("D:/fileUtis/targetFile/"));
	}

 

五、FileUtils创建API

public static void main(String[] args) throws Exception {
		//创建一个目录,可以递归创建,只要不为null
		FileUtils.forceMkdir(new File("D:/fileUtis/targetFile/aa"));
		//创建一个空文件,若文件应经存在则只更改文件的最近修改时间
		FileUtils.touch(new File("D:/fileUtis/targetFile/Liftoff.java"));
	}

 

 

六.FileUtils复制,移动(剪切)API

public static void main(String[] args) throws Exception {
		//复制目录
		File dataFile=new File("D:/fileUtis/dataFile");
		File targetFile = new File("D:/fileUtis/targetFile");
		if(targetFile.isDirectory()){//判断是否是一个目录
			FileUtils.copyDirectory(dataFile,targetFile);
		}
		//复制文件
		dataFile=new File("D:/fileUtis/dataFile/joiner.java");
		targetFile = new File("D:/fileUtis/targetFile/aa.txt");
		FileUtils.copyFile(dataFile,targetFile);
		//复制文件到一个目录
		dataFile=new File("D:/fileUtis/dataFile/joiner.java");
		targetFile = new File("D:/fileUtis/");
		FileUtils.copyFileToDirectory(dataFile, targetFile);
		
		//移动目录到新的目录并且删除老的目录,新的目录不存在会创建,如果存在会报错
		dataFile=new File("D:/fileUtis/dataFile");
		targetFile = new File("D:/fileUtis/aa");
		FileUtils.moveDirectory(dataFile, targetFile);
		
		dataFile=new File("D:/fileUtis/dataFile");
		targetFile = new File("D:/fileUtis/aa");
		//把目录移动到一个新的文件下面,是新文件下面,ture,当目标文件不存在是否创建
		FileUtils.moveDirectoryToDirectory(dataFile, targetFile, true);
		//复制文件
		FileUtils.moveFile(srcFile, destFile)
	}

 

 七.FileUtils的其他方法

#获取一个目录的大小
FileUtils.sizeOfDirectory(file);

#获取文件或者目录的大小
FileUtils.sizeOf(file);

#得到系统临时目录的路径,例如C:\Users\ADMINI~1\AppData\Local\Temp\
FileUtils.getTempDirectoryPath()

#比较两个文件内容是否相等,左右两边有空格返回false
FileUtils.contentEquals(file1, file2);

#获取用户的主目录路径,返回的是字符串
FileUtils.getUserDirectoryPath();

#获取代表用户主目录的文件,返回的是file
FileUtils.getUserDirectory();

#根据指定的文件获取一个新的文件输出流
FileUtils.openOutputStream(file);

#字节转换成直观带单位的值(包括单位GB,MB,KB或字节),如下返回95 M
FileUtils.byteCountToDisplaySize(100000000);

 

 八、对文件的过滤处理

public class FileUtilsTest {
	/**
	 * 通配符过滤目录下的文件
	 */
	static void wildcardTest(){
		File dir = new File("D:/fileUtis");  
		FileFilter fileFilter = new WildcardFileFilter("*.java");  
	    File[] files = dir.listFiles(fileFilter);  
		for (int i = 0; i < files.length; i++) {  
		   System.out.println(files[i]);  
		}  
	}
	/**
	 * 过滤文件大小,等于或大于某一尺寸 ,单位为字节
	 */
	static void sizeFile(){
		File dir = new File("D:/fileUtis"); 
		String[] files = dir.list( new SizeFileFilter(1024*2) );
		for ( int i = 0; i < files.length; i++ ) {
		    System.out.println(files[i]);
		}
	}
	/**
	 * 过滤文件后缀名 
	 */
	static void suffix(){
		File dir = new File("D:/fileUtis"); 
		String[] files = dir.list(new SuffixFileFilter(".java"));
		for (int i = 0; i < files.length; i++) {  
			System.out.println(files[i]);  
		}  	
	}
	/**
	 * 使用正则表达式过滤
	 */
	static void regex(){
		File dir = new File("D:/fileUtis"); 
		FileFilter fileFilter = new RegexFileFilter("^j.*.java");  
		File[] files = dir.listFiles(fileFilter);  
		for (int i = 0; i < files.length; i++) {  
		  System.out.println(files[i]);  
		} 
	}
	
	/**
	 * 文件前缀过滤
	 */
	static void aa(){
		File dir = new File("D:/fileUtis");
	    String[] files = dir.list( new PrefixFileFilter("aa"));  
		for ( int i = 0; i < files.length; i++ ) {  
		     System.out.println(files[i]);  
		}  
	}
	/**
	 * 打印这个目录下所有.java结尾的文件名,会递归去他子目录中去找
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		File dir = new File("D:/fileUtis");
		Collection<File> files = FileUtils.listFiles(dir,
				FileFilterUtils.suffixFileFilter(".java"),  
                DirectoryFileFilter.DIRECTORY);
		 for (File f : files) {  
	          System.out.println(f.getName());  
	     } 
	}
}

 

 

分享到:
评论

相关推荐

    Android静默安装常用工具类

    源码可见FileUtils.java,更多方法及更详细参数介绍可见FileUtils Api Guide。 8、ResourceUtils Android Resource工具类,可用于从android资源目录的raw和assets目录读取内容,如: geFileFromAssets(Context ...

    fileutils-1.0.zip

    4. **文档**:`README.md`或`docs`目录下的文档文件,详细解释了组件的安装、配置和使用方法,包括API文档、示例代码解析等。 5. **测试代码**:`tests`或`test`目录下可能有单元测试代码,用于验证组件的功能和...

    【Java基础】-- FileUtils工具类常用方法(csdn)————程序.pdf

    【Java基础】-- FileUtils工具类常用方法 ...总之,Apache Commons IO的FileUtils工具类为Java开发者提供了一套强大且易用的文件操作API,极大地简化了日常开发中的文件处理工作,值得在项目中广泛使用。

    FileUtils java web 文件上传下载工具

    后端Java Web应用需要解析上传的文件,这通常可以通过Servlet API或者第三方库如Apache Commons FileUpload来完成。`FileUtils`可以帮助我们轻松地将接收到的文件保存到服务器的指定位置,例如: ```java import ...

    Cocos2d-x 3.6 API离线文档

    - 使用`cc.FileUtils`管理资源,优化加载速度和内存使用。 7. **学习资源与实践**: - 通过离线文档深入学习每个类的功能和使用方法。 - 参考官方教程和社区论坛,解决实际开发中遇到的问题。 - 实践项目,通过...

    ftputils:用于 FTP 的 FIleUtils 和文件 API 的子集

    FTPUtils FTPUtils 尝试使用 Net::FTP 重现 FileUtils 和 File for FTP URI 提供的方法的子集。 虽然它在 Rspec 规范中有不错的覆盖范围,但它仅在特定于其开发目的的条件下进行了测试,并且很可能需要更多的工作...

    Cocos2d-x 3.10 API离线文档

    9. **资源管理**:`cc::FileUtils`类帮助加载和管理资源文件,如图片、音频和XML配置文件。 10. **性能优化**:Cocos2d-x提供了一些优化工具,如`cc::RenderCommand`和`cc::CommandBuffer`,以提高渲染效率。 离线...

    commos api

    它弥补了Java标准库在I/O方面的一些不足,如FileUtils、IOUtils和EndianUtils。 3. **Apache Commons Collections**: 提供了对Java集合框架的增强,包括更丰富的迭代器、比较器、集合工厂和算法。例如,ListUtils、...

    dom4j-1.6.1 api以及源码

    Document document = DocumentHelper.parseText(FileUtils.readFileToString(file)); Element root = document.getRootElement(); List&lt;Element&gt; children = root.elements(); ``` - **使用XPath查找节点**: ```...

    apache-commons的所有API

    `FileUtils` 可以进行文件的复制、移动、删除,而 `IOUtils` 提供了流的读写和关闭等操作。 6. **Commons DBCP**: 是一个数据库连接池组件,能够提高数据库连接的复用效率,减少数据库连接创建和释放的开销。`...

    apache-commons源代码、api、jar包

    2. **Commons IO**: 专注于I/O流操作,如文件读写、转换、比较和复制,提供了`FileUtils`、`IOUtils`等工具类,简化了文件操作。 3. **Commons Collections**: 提供了对Java集合框架的增强,包括集合操作、比较、...

    org.apache.commons.io.jar

    Apache Commons IO库的设计目标是为Java开发人员提供一套全面且一致的API,用于处理各种类型的输入/输出任务。这些任务包括读写文件、复制流、比较文件、处理流、检测文件类型以及处理临时文件等。库中的类设计简洁...

    JavaAPI文档和commons-io-2.11.0

    例如,`FileUtils`类提供了便捷的文件操作方法,`IOUtils`类则包含了对流的处理,如读取、关闭和复制流。此外,`EndianUtils`类支持大小端字节序转换,而`Charsets`类提供了对字符集的支持。`commons-io`库极大地...

    upload相关+api+io

    Apache组织提供了一系列的组件来支持文件上传操作,其中就包括了与“upload相关”的API和IO支持。在这个压缩包中,很可能包含了Apache的Commons FileUpload库和相关的IO工具类,这些都是实现高效、稳定文件上传的...

    Commons-api

    1. **IO流处理**:Apache Commons IO 提供了丰富的IO操作类,如`FileUtils`、`IOUtils`等,用于文件的读写、复制、删除等操作,使得文件操作更加简便。 2. **字符串处理**:`StringUtils`类提供了许多实用的字符串...

    rubyAPI文档

    例如,`fileutils`模块提供了文件操作的便利方法,如复制、移动或删除文件;`net/http`库用于HTTP通信,支持发送HTTP请求和接收响应;`date`类处理日期和时间的计算;`json`模块用于JSON(JavaScript Object ...

    FileUtils:用于处理 Java 文件的辅助类集合

    使用`FileUtils`可以避免直接使用Java标准库中`java.io.File`类的一些复杂和易错的API,同时,`FileUtils`还提供了很多便利的功能,如处理IOException异常,使得代码更加简洁和易于维护。在实际开发中,尤其是在处理...

    百度地图截图

    百度地图作为国内领先的地图服务平台,其提供的API和SDK为开发者提供了强大的地图功能实现可能。本文将详细介绍如何在Java环境中使用百度地图API进行地图截图,并结合文件操作功能保存截图。 首先,我们来探讨核心...

    commons实用jar包及api注解

    `FileUtils`类提供了一系列静态方法,用于文件和目录的创建、复制、删除等操作。`InputStreamReader`和`BufferedReader`则常用于读取文件内容,而`OutputStreamWriter`和`BufferedWriter`则用于写入。 3. **Apache ...

    FileUtils扩展readURLtoString读取url内容

    例如,在爬虫、数据抓取或者API调用等场景下,你可以直接将URL作为输入,获取网页或服务返回的内容。同时,`readURLToStringByPOST` 还允许你在发送POST请求时携带参数,这在提交表单数据或执行其他需要POST方法的...

Global site tag (gtag.js) - Google Analytics