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));
分享到:
相关推荐
FileUtils实现文件下载,下载的文件会显示真是的文件名,下载的文件无论什么格式都不会在页面直接打开
用于快速读取File和写入File,org.apache.commons.io.FileUtils包含各种读取的方法,比传统的读写速度快,占用内存小
FileUtils.java 文件处理工具类
fileutils.zip,fileutils-一个简单的filewatcher实用程序一个简单的filewatcher实用程序
【Java基础】-- FileUtils工具类常用方法(csdn)————程序
文件工具类FileUtils,对文件中内容行数lines的总数统计
FileUtils.cpp pdal c++
关于文件操作工具类相关方法介绍,手工打造描述,请多多指教
,复制单个文件到指定路径,复制整个文件夹到指定路径,复制文件夹下所有文件到指定路径,删除单个文件,删除文件夹下所有文件,删除文件夹以及文件下下所有文件。。。等
实现文件的创建、删除、复制、压缩、解压以及目录的创建、删除、复制、压缩解压等功能
支持多线程上传下载,支持断点续传功能的一个工具类。
java web 上传下载工具类,压缩包内包含src和WebRoot,直接新建项目,然后复制这两个目录内的文件,覆盖新建项目中的文件即可。用法参见test用例
fileutils-maven-插件fileutils-maven-plugin 是一个构建插件,用于对文本文件执行一些基本操作。目标概述fileutils-maven-plugin 提供了几个目标。 fileutils-maven-plugin:concatFileList 将文件内容连接到输出...
android File操作工具类 提供了常用的File操作方法
java组件开发(12) IOUtils、FileUtils
fileutils fileutils具有实用程序功能,可以读取,写入和同步文件。用例写文件: write("/tmp/myfile.txt", std::string_view{"Hello, world!"});将文件同步到存储: sync("/tmp/myfile.txt");读取文件: std::...
利用java语言写的文件夹压缩和解压的代码,主要针对.7z格式和.zip格式。其中引入了相应maven依赖,可以完美实现多个文件的压缩和解压。