`

fileutils 学习二

    博客分类:
  • java
 
阅读更多

1 我写的小例子
通配符过滤目录下的文件

File dir = new File(".");   
  1.  FileFilter fileFilter = new WildcardFileFilter("*test*.java~*~");   
  2.  File[] files = dir.listFiles(fileFilter);   
  3.  for (int i = 0; i < files.length; i++) {   
  4.    System.out.println(files[i]);   
  5.  }  
File dir = new File(".");
 FileFilter fileFilter = new WildcardFileFilter("*test*.java~*~");
 File[] files = dir.listFiles(fileFilter);
 for (int i = 0; i < files.length; i++) {
   System.out.println(files[i]);
 }



过滤文件大小

Java代码 复制代码 收藏代码
  1. File dir = new File(".");   
  2.  String[] files = dir.list( new SizeFileFilter(1024 * 1024) );   
  3.  for ( int i = 0; i < files.length; i++ ) {   
  4.      System.out.println(files[i]);   
  5.  }  
File dir = new File(".");
 String[] files = dir.list( new SizeFileFilter(1024 * 1024) );
 for ( int i = 0; i < files.length; i++ ) {
     System.out.println(files[i]);
 }



文件后缀名

Java代码 复制代码 收藏代码
  1. File dir = new File(".");   
  2.  String[] files = dir.list( new SuffixFileFilter(".java") );   
  3.  for (int i = 0; i < files.length; i++) {   
  4.      System.out.println(files[i]);   
  5.  }  
File dir = new File(".");
 String[] files = dir.list( new SuffixFileFilter(".java") );
 for (int i = 0; i < files.length; i++) {
     System.out.println(files[i]);
 }



正则表达式

Java代码 复制代码 收藏代码
  1. File dir = new File(".");   
  2.  FileFilter fileFilter = new RegexFileFilter("^.*[tT]est(-\\d+)?\\.java$");   
  3.  File[] files = dir.listFiles(fileFilter);   
  4.  for (int i = 0; i < files.length; i++) {   
  5.    System.out.println(files[i]);   
  6.  }  
File dir = new File(".");
 FileFilter fileFilter = new RegexFileFilter("^.*[tT]est(-\\d+)?\\.java$");
 File[] files = dir.listFiles(fileFilter);
 for (int i = 0; i < files.length; i++) {
   System.out.println(files[i]);
 }



前缀

Java代码 复制代码 收藏代码
  1. File dir = new File(".");   
  2.  String[] files = dir.list( new PrefixFileFilter("Test") );   
  3.  for ( int i = 0; i < files.length; i++ ) {   
  4.      System.out.println(files[i]);   
  5.  }  
File dir = new File(".");
 String[] files = dir.list( new PrefixFileFilter("Test") );
 for ( int i = 0; i < files.length; i++ ) {
     System.out.println(files[i]);
 }


Java代码 复制代码 收藏代码
  1. File file = new File(fileName);   
  2.         // FileUtils.writeStringToFile(file, "fasdfasdfsadf");// 会覆盖   
  3.         System.out.println(File.pathSeparator);   
  4.         System.out.println(File.separator);   
  5.         System.out.println(Charset.defaultCharset());   
  6.         Files.append(System.getProperty("line.separator") + "22222222222",   
  7.                 file, Charset.defaultCharset());// 不分行的   
  8.         // Files.write("3333333333", file, Charset.defaultCharset());// 会覆盖   
  9.         System.out.println(FileUtils.readFileToString(file));  
File file = new File(fileName);
		// FileUtils.writeStringToFile(file, "fasdfasdfsadf");// 会覆盖
		System.out.println(File.pathSeparator);
		System.out.println(File.separator);
		System.out.println(Charset.defaultCharset());
		Files.append(System.getProperty("line.separator") + "22222222222",
				file, Charset.defaultCharset());// 不分行的
		// Files.write("3333333333", file, Charset.defaultCharset());// 会覆盖
		System.out.println(FileUtils.readFileToString(file));


Java代码 复制代码 收藏代码
  1. import java.io.File;   
  2. import java.io.IOException;   
  3. import java.net.URISyntaxException;   
  4. import java.net.URL;   
  5. import java.util.Collection;   
  6.   
  7. import org.apache.commons.io.FileUtils;   
  8. import org.apache.commons.io.IOUtils;   
  9. import org.apache.commons.io.filefilter.DirectoryFileFilter;   
  10. import org.apache.commons.io.filefilter.FileFilterUtils;   
  11.   
  12. public final class FileFilterTest {   
  13.   
  14.     private FileFilterTest() {   
  15.     }   
  16.   
  17.     /**  
  18.      * 打印这个目录下所有.java结尾的文件名  
  19.      */  
  20.     private static void printFile() {   
  21.         String realPath = "D://eclipse_workspace//swp//src//com//snda//swp";   
  22.         File dir = new File(realPath);   
  23.         // FILE类的list不能递归   
  24.         /*  
  25.          * String files[] = dir.list(FileFilterUtils.suffixFileFilter(".java"));  
  26.          * for(String f : files){ System.out.println(f); }  
  27.          */  
  28.         @SuppressWarnings("unchecked")   
  29.         Collection<File> files = FileUtils.listFiles(dir,   
  30.                 FileFilterUtils.suffixFileFilter(".java"),   
  31.                 DirectoryFileFilter.INSTANCE);   
  32.         System.out.println(files.size());   
  33.         for (File f : files) {   
  34.             System.out.println(f.getName());   
  35.         }   
  36.     }   
  37.   
  38.     /**  
  39.      * 把一个网址的内容复制到一个临时文件夹下的临时文件中去  
  40.      *   
  41.      * @throws IOException  
  42.      * @throws URISyntaxException  
  43.      */  
  44.     private static void uri2File() throws IOException, URISyntaxException {   
  45.         String uri = "http://g.cn";   
  46.         URL source = new URL(uri);   
  47.         File destination = File.createTempFile("tempfile"null);// 创建临时文件   
  48.         FileUtils.copyURLToFile(source, destination);   
  49.         System.out.println(FileUtils.readFileToString(destination));   
  50.         FileUtils.forceDeleteOnExit(destination);   
  51.     }   
  52.   
  53.     /**  
  54.      * 打印一个URL的内容  
  55.      *   
  56.      * @throws IOException  
  57.      */  
  58.     private static void uri2String() throws IOException {   
  59.         String uri = "http://g.cn";   
  60.         URL source = new URL(uri);   
  61.         System.out.println(IOUtils.toString(source.openStream()));   
  62.     }   
  63.   
  64.     private static void uri2String(String uri) throws IOException {   
  65.         URL source = new URL(uri);   
  66.         System.out.println(IOUtils.toString(source.openStream()));   
  67.     }   
  68.   
  69.     private static void uri2String(String uri, String encoding)   
  70.             throws IOException {   
  71.         URL source = new URL(uri);   
  72.         if (encoding == null)   
  73.             uri2String(uri);   
  74.         System.out.println(IOUtils.toString(source.openStream(), encoding));   
  75.     }   
  76.   
  77.     /**  
  78.      * @param args  
  79.      */  
  80.     public static void main(String[] args) {   
  81.         try {   
  82.             String uri = "http://192.168.101.181:8440/web5/home/NewsData.asp";   
  83.             uri2String(uri, "gb2312");//要用gb2312解码 不然会乱码   
  84.         } catch (IOException e) {   
  85.             e.printStackTrace();   
  86.         }   
  87.     }   
  88.   
  89. }  
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Collection;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.FileFilterUtils;

public final class FileFilterTest {

	private FileFilterTest() {
	}

	/**
	 * 打印这个目录下所有.java结尾的文件名
	 */
	private static void printFile() {
		String realPath = "D://eclipse_workspace//swp//src//com//snda//swp";
		File dir = new File(realPath);
		// FILE类的list不能递归
		/*
		 * String files[] = dir.list(FileFilterUtils.suffixFileFilter(".java"));
		 * for(String f : files){ System.out.println(f); }
		 */
		@SuppressWarnings("unchecked")
		Collection<File> files = FileUtils.listFiles(dir,
				FileFilterUtils.suffixFileFilter(".java"),
				DirectoryFileFilter.INSTANCE);
		System.out.println(files.size());
		for (File f : files) {
			System.out.println(f.getName());
		}
	}

	/**
	 * 把一个网址的内容复制到一个临时文件夹下的临时文件中去
	 * 
	 * @throws IOException
	 * @throws URISyntaxException
	 */
	private static void uri2File() throws IOException, URISyntaxException {
		String uri = "http://g.cn";
		URL source = new URL(uri);
		File destination = File.createTempFile("tempfile", null);// 创建临时文件
		FileUtils.copyURLToFile(source, destination);
		System.out.println(FileUtils.readFileToString(destination));
		FileUtils.forceDeleteOnExit(destination);
	}

	/**
	 * 打印一个URL的内容
	 * 
	 * @throws IOException
	 */
	private static void uri2String() throws IOException {
		String uri = "http://g.cn";
		URL source = new URL(uri);
		System.out.println(IOUtils.toString(source.openStream()));
	}

	private static void uri2String(String uri) throws IOException {
		URL source = new URL(uri);
		System.out.println(IOUtils.toString(source.openStream()));
	}

	private static void uri2String(String uri, String encoding)
			throws IOException {
		URL source = new URL(uri);
		if (encoding == null)
			uri2String(uri);
		System.out.println(IOUtils.toString(source.openStream(), encoding));
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			String uri = "http://192.168.101.181:8440/web5/home/NewsData.asp";
			uri2String(uri, "gb2312");//要用gb2312解码 不然会乱码
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}


创建临时文件 然后再删除
FileUtils.forceDeleteOnExit(destination);


2 FileUtils.deleteDirectory
删除一个目录 会先递归删除这个目录下的文件和子目录
最后删除目录 如果目录删除不了 会抛异常

guava库的
Files.deleteDirectoryContents方法递归删除但是不删除目录本身
Files.deleteRecursively 递归删除

forceDeleteOnExit(File file)
当强制JVM退出时,删除file变量对应的文件或者目录。在处理临时目录上非常好用。

3 引用自JDK1.6

引用

InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。

每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。

为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:

BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));



分享到:
评论

相关推荐

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

    在Java编程中,`FileUtils`是一个...通过阅读源码,你可以学习到如何优雅地处理文件I/O操作,并理解其错误处理和性能优化策略。对于Java开发者来说,理解并掌握`FileUtils`的用法和原理,将有助于提高代码质量和效率。

    Cocos2D-X开发学习笔记-游戏数据存储项目实例(上)

    在“Cocos2D-X开发学习笔记-游戏数据存储项目实例”中,你可能会学习到如何结合上述技术,创建一个实际的游戏数据存储系统。通过阅读教程和分析提供的项目文件"MyDataSave01",你将深入理解如何在实践中应用这些知识...

    struts2学习笔记三

    在本篇“Struts2学习笔记三”中,我们将探讨Struts2中处理文件上传的核心组件和拦截器,以及如何在实际应用中实现文件上传。 1. 文件上传组件: - jspSmartUpload:这是一个早期用于模型1的上传组件,现在已经被更...

    Java字符编码及获取文件编码

    通过阅读和理解这段代码,你可以学习到如何在Java中处理不同编码的文件,以及如何在不确定编码的情况下进行探测和转换。 总之,理解字符编码以及如何在Java中处理它们是每个开发者的必备技能。无论是处理本地化文本...

    Cocos2d-x 3.6 API离线文档

    2. **3.6 版本更新**: - 性能提升:Cocos2d-x 3.6 版本优化了渲染效率,减少了内存消耗,提升了游戏运行速度。 - 脚本语言支持:对JSB(JavaScript Bindings)进行了增强,使JavaScript开发更加便捷高效。 - ...

    cocos2d-x卡通机器人

    资源管理是cocos2d-x开发中的重要环节,你可以使用`cc.FileUtils`类来加载和管理这些资源,确保它们能在游戏中正确显示和播放。 编译和运行项目时,cocos2d-x的构建系统会处理所有依赖,包括编译C++源代码、链接库...

    cocos2d-x 塔防游戏源码

    4. 存档与加载:利用FileUtils保存和读取游戏进度,确保游戏状态的持久化。 四、优化与扩展 1. 性能优化:使用profiler工具分析性能瓶颈,优化渲染、更新逻辑,减少不必要的计算。 2. 社交功能:集成社交网络API,...

    Cocos2d-x之Lua核心编程 配套代码

    2. **Lua基础语法**:在学习这个配套代码时,你需要了解Lua的基本语法,包括变量、数据类型(如数字、字符串、表、函数等)、控制结构(如if语句、for循环、while循环)以及函数定义和调用。 3. **Cocos2d-x API在...

    学习java线程下载图片(csdn)————程序.pdf

    在本例中,我们使用`FileUtils`类来从URL下载文件到本地。`commons-io-1.4.jar`是这个库的一个版本,你需要将其添加到项目的类路径中,以便能够使用其中的类和方法。 `TestThead2` 类是我们的自定义线程类,它扩展...

    Cocos2d-x 3.10 API离线文档

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

    commons-io-2.2-src.zip

    二、核心类解析 1. `FileUtils`: 提供大量对文件操作的静态方法,如`copyFile()`, `moveFile()`, `deleteQuietly()`等,方便且易用。 2. `IOUtils`: 这个类提供了处理流的工具方法,如`copy()`方法用于复制流,`...

    cocos2d-x入门

    你需要了解如何正确地组织资源文件,并使用如`cc.FileUtils`这样的工具来加载它们。 8. 测试与打包:完成代码编写后,可以在多个平台上进行测试,包括iOS、Android、Windows、Mac等。cocos2d-x提供了一键打包功能,...

    第二十八部分 游戏保存和载入存档游戏

    载入游戏时,首先使用`FileUtils`的`getDataFromFile()`方法读取保存的二进制文件,然后调用`Value::fromBinary()`进行反序列化。反序列化后的`cc::Value`对象可以用来恢复游戏状态,例如设置玩家的位置、更新财产等...

    java文件流学习实验

    2. **基本流类**:Java的基础文件流类有FileInputStream和FileOutputStream,它们分别用于读取和写入文件。例如,`new FileInputStream("file.txt")` 创建一个从指定文件读取数据的输入流,而`new FileOutputStream...

    cocos2d-Lua示例demo源码踩虫子-MOD美国大兵

    1. **cocos2d-Lua引擎**:cocos2d-Lua是cocos2d-x框架的一个分支,它将强大的cocos2d-x图形库与易于学习和使用的Lua脚本语言相结合,使得开发者能够快速构建2D游戏。在本项目中,所有的游戏逻辑、场景管理、对象交互...

    cocos2d-x帮助文档

    cocos2d-x是一款跨平台的2D游戏开发框架,基于C++,同时支持Objective-C和Python等语言,广泛应用于移动游戏开发领域。这份文档的存在,旨在解决开发者在使用cocos2d-x过程中可能遇到的各类问题,提升开发效率和游戏...

    月亮战神游戏源代码c++

    5. 资源管理:Cocos2dx提供`cc::Director`和`cc::FileUtils`类,用于加载和管理游戏资源,如图片、音频文件等。 五、学习路径 1. 学习C++基础知识,理解面向对象编程的概念。 2. 熟悉Cocos2dx的API,通过官方文档和...

    org.jresearch.commons.gwt.utils.shared-1.0.45.zip

    2. **构建脚本**:可能是Maven的`pom.xml`或Gradle的`build.gradle`文件,用于定义依赖关系、构建过程和部署步骤。 3. **测试**:在`src/test/java`目录下,包含单元测试和集成测试,用于验证代码功能的正确性。 4. ...

    common-io範例程式

    2. 流操作:支持对输入流、输出流的读写,以及转换操作。 3. 字符集:提供了对字符集的支持,便于在不同编码间进行转换。 4. 文件观察:可以监听文件系统的变化。 5. 临时文件:方便地创建和管理临时文件。 6. 线程...

    fileup-and-download.zip_fileup html_struts2

    通过这个项目,开发者不仅可以学习到如何在Struts2环境中实现文件操作,还能了解相关的安全控制和用户体验优化。对于Java Web开发者来说,熟练掌握这些技能是至关重要的,因为它直接关系到应用的功能完善性和用户...

Global site tag (gtag.js) - Google Analytics