`

fileutils

阅读更多
1 我写的小例子
通配符过滤目录下的文件
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]);
 }


过滤文件大小
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]);
 }


文件后缀名
File dir = new File(".");
 String[] files = dir.list( new SuffixFileFilter(".java") );
 for (int i = 0; i < files.length; i++) {
     System.out.println(files[i]);
 }


正则表达式
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]);
 }


前缀
File dir = new File(".");
 String[] files = dir.list( new PrefixFileFilter("Test") );
 for ( int i = 0; i < files.length; i++ ) {
     System.out.println(files[i]);
 }


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));


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));





分享到:
评论

相关推荐

    org.apache.commons.io.FileUtils

    Apache Commons IO库中的`org.apache.commons.io.FileUtils`类是一个非常实用的工具类,它提供了大量方便、高效的方法,用于处理文件系统操作。这个类在Java开发中被广泛使用,尤其是在处理大量的文件读写和管理任务...

    FileUtils 的方法大全

    ### FileUtils 的方法大全 本文将详细介绍 `FileUtils` 类中提供的各种文件操作方法,这些方法在 Java 开发中非常实用,能够帮助开发者高效地完成文件处理任务。 #### 一、获取系统的临时目录路径 **方法名**: `...

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

    【Java基础】-- FileUtils工具类常用方法 在Java开发中,进行文件操作是必不可少的一部分,Apache Commons IO库提供了一个非常方便的工具类FileUtils,它对Java基础的IO操作进行了封装,使得文件处理更加简洁易用。...

    fileutils-1.0.zip

    《fileutils-1.0.zip》是一个开源项目,其中包含了用于评级功能的Java Swing组件,具体为`Rating.zip`。这个组件是专为在Swing应用程序中实现用户评分功能而设计的,它允许用户通过图形界面对不同内容进行评级,如...

    FileUtils java web 文件上传下载工具

    `FileUtils`是一个方便的工具类,用于简化这些操作。本篇将详细讲解如何利用`FileUtils`实现文件的上传和下载,并介绍如何在Java Web项目中集成和使用这个工具。 首先,`FileUtils`并不是Java标准库的一部分,而是...

    FileUtils实现文件下载

    FileUtils实现文件下载,下载的文件会显示真是的文件名,下载的文件无论什么格式都不会在页面直接打开

    FileUtils类

    文件工具类FileUtils,对文件中内容行数lines的总数统计

    FileUtils.cpp

    FileUtils.cpp pdal c++

    FileUtils.rar

    在`FileUtils`这个类中,这些功能通常会被封装成方法,比如`compressFolderTo7z()`和`uncompress7z()`, 以及对应的.zip版本的方法。这些方法应该处理所有必要的错误和异常,以确保文件操作的正确性和安全性。 总的...

    文件操作工具类FileUtils

    ,复制单个文件到指定路径,复制整个文件夹到指定路径,复制文件夹下所有文件到指定路径,删除单个文件,删除文件夹下所有文件,删除文件夹以及文件下下所有文件。。。等

    FileUtils.java

    收集下JAVA日常开发常用的工具类 包括 文件处理工具:FileUtils 有需要的大家可以下载使用希望能帮到各位

    FileUtils文件操作工具类

    实现文件的创建、删除、复制、压缩、解压以及目录的创建、删除、复制、压缩解压等功能

    FileUtils.java 文件工具类

    支持多线程上传下载,支持断点续传功能的一个工具类。

    fileutils:C ++文件实用程序

    fileutils fileutils具有实用程序功能,可以读取,写入和同步文件。用例写文件: write("/tmp/myfile.txt", std::string_view{"Hello, world!"});将文件同步到存储: sync("/tmp/myfile.txt");读取文件: std::...

    fileutils-maven-plugin

    fileutils-maven-插件fileutils-maven-plugin 是一个构建插件,用于对文本文件执行一些基本操作。目标概述fileutils-maven-plugin 提供了几个目标。 fileutils-maven-plugin:concatFileList 将文件内容连接到输出...

    android FileUtils

    android File操作工具类 提供了常用的File操作方法

    java组件开发(12) IOUtils、FileUtils

    java组件开发(12) IOUtils、FileUtils

Global site tag (gtag.js) - Google Analytics