- 浏览: 251330 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (282)
- 常用-笔记 (9)
- 2012-2013开发整理 (19)
- 2017前-开发整理 (38)
- 2017-开发整理【前端】 (2)
- 数据库 (25)
- 数据库_Oracle (35)
- 数据库_MySql (4)
- 数据库_Sybase (30)
- 数据库_Oracle ERP (4)
- java 应用 (23)
- java_xml解析 (7)
- java_反射 (0)
- Java_多线程 (0)
- java_socket (0)
- 前端_CSS样式 (3)
- 前端_JavaScript (29)
- 前端_jQuery 应用 (11)
- 前端_jQuery EasyUI (2)
- 开源_SSH框架应用 (18)
- 开源_spring (0)
- 开源_springMVC (0)
- 开源_MyBatis (0)
- 架构_01. SOA_webService (8)
- 架构_02. 搜索引擎_Solr (0)
- 架构_03. redis (0)
- 架构_04. mongodb (2)
- 架构_05. 设计模式 (0)
- 架构_06. 缓存机制 (0)
- 架构_07. 身份认证 (0)
- 架构_08. 单点登录 (0)
- 架构_09. JMS消息机制 (0)
- 架构_10. 工作流 (0)
- 架构_11. 日志 (1)
- 架构_12. 数据库-设计 (1)
- 架构_13.分布式架构 (1)
- web_C标签 (4)
- web中间件 (6)
- 综合技术 (4)
- 管理_maven (3)
- 管理_软件项目管理 (17)
- 思考_程序人生 (16)
- 资源_网站 (2)
- 其他 (1)
- Eclipse基本配置 (3)
- 2017-18 (8)
- Linux (1)
- 数字计算 (3)
- 微信开发 (0)
最新评论
-
masuweng:
JavaScript 动态表格增加、删除、行金额计算、合计 -
xxwozixin:
迷茫中在iteye上搜索“程序员的第一个五年规划”结果看到了这 ...
我的中兴五年生活
1、先看一个File类的简单的例子import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.Scanner;
import java.util.regex.Pattern;
/**
* File代表文件和目录,静态域有:与系统有关的路径分隔符、与系统有关的默认名称分隔符。
* 主要操作有:创建文件或目录、删除文件、给文件设定属性、返回指定目录下的文件列表、
* 返回过滤后的文件列表、 检测文件是否存在、是否隐藏、是否是目录还是文件、
* 返回文件名称和路径
*
* @author Touch
*
*/
public class FileDemo {
/*
* 查找指定路径下的匹配regex的文件
*/
public String[] find(String path, final String regex) {
File file = new File(path);
//匿名内部类
return file.list(new FilenameFilter() {
private Pattern pattern = Pattern.compile(regex);
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return pattern.matcher(name).matches();
}
});
}
public static void main(String[] args) {
String path = null;
String key = null;
String regex = null;
int choice = 1;
Scanner scanner = new Scanner(System.in);
System.out.println("please input the file path:");
path = scanner.next();
System.out.println("please input key:");
key = scanner.next();
System.out.println("choise:\n0:匹配以" + key + "为后缀的文件\n1:匹配包含" + key
+ "的文件");
if ((choice = scanner.nextInt()) == 0)
regex = ".*\\." + key;
else
regex = ".*" + key + ".*";
String[] list;
list = new FileDemo().find(path, regex);
System.out.println(Arrays.deepToString(list));
//返回指定路径下的目录列表
File[] fileList = new File(path).listFiles();
for (File file : fileList) {
if (file.isDirectory()) {
list = new FileDemo().find(file.getPath(), regex);
System.out.println(Arrays.deepToString(list));
}
}
}
}
2、看完这个例子,是不是可以写个工具类呢,用于搜索指定路径下的所有文件或者目录,当然也可以输入正则表达式,这样就可以筛选出我们想要的文件(如有时候我们只需要.java文件或者.txt文件)
3、测试<span style="font-size:16px;">package mine.util;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* FileDirectory类用于查找指定根目录下的所有文件和目录 可以通过正则表达式对要查找的 文件及目录进行筛选
*
* @author Touch
*/
public final class SearchFile {
// 存放文件
private List<File> fileList = new ArrayList<File>();
// 存放目录
private List<File> directoryList = new ArrayList<File>();
// 存放文件和目录
private List<File> list = new ArrayList<File>();
private File file;// 目录
private String regex;// 正则表达式
public SearchFile(String path) {
file = new File(path);
this.regex = ".*";
}
public SearchFile(File file) {
this.file = file;
this.regex = ".*";
}
public SearchFile(String path, String regex) {
file = new File(path);
this.regex = regex;
}
public SearchFile(File file, String regex) {
this.file = file;
this.regex = regex;
}
// 返回当前目录下的所有文件及子目录
public List<File> files() {
File[] files = file.listFiles();
List<File> list = new ArrayList<File>();
for (File f : files)
if (f.getName().matches(regex))
list.add(f);
return list;
}
// 返回该根目录下的所有文件
public List<File> allFiles() {
if (list.isEmpty())
search(file);
return fileList;
}
// 返回该根目录下的所有子目录
public List<File> allDirectory() {
if (list.isEmpty())
search(file);
return directoryList;
}
// 返回该根目录下的所有文件及子目录
public List<File> allFilesAndDirectory() {
if (list.isEmpty())
search(file);
return list;
}
// 递归搜索当前目录下的所有文件及目录
private void search(File file) {
File[] files = file.listFiles();
if (files == null || files.length == 0)
return;
for (File f : files) {
if (f.getName().matches(regex))
list.add(f);
if (f.isFile() && f.getName().matches(regex))
fileList.add(f);
else {
if (f.getName().matches(regex))
directoryList.add(f);
search(f);
}
}
}
}
</span>
4、结果: -------- 指定目录中所有文件及子目录-------<span style="font-size:16px;">package mine.util;
import java.io.File;
import java.util.List;
public class TestSearchFile {
public static void main(String[] args) {
System.out.println("-------- 指定目录中所有文件及子目录-------");
List<File> list = (List<File>) new SearchFile(
"G:/java/workspace/test/file").files();
for (File file : list)
System.out.println(file.getName());
System.out.println("--------指定目录中以txt为后缀的文件------");
list = (List<File>) new SearchFile("G:/java/workspace/test/file",
".*\\.txt").files();
for (File file : list)
System.out.println(file.getName());
System.out.println("--------以该目录为根目录的所有文件及子目录--");
list = (List<File>) new SearchFile("G:/java/workspace/test")
.allFilesAndDirectory();
for (File file : list)
System.out.println(file.getName());
}
}
</span>
aa.data
bb.dat
object
test.txt
test1.txt
test2.txt
test3.txt
test4.txt
test5
--------指定目录中以txt为后缀的文件------
test.txt
test1.txt
test2.txt
test3.txt
test4.txt
--------以该目录为根目录的所有文件及子目录--
.classpath
.project
.settings
org.eclipse.jdt.core.prefs
bin
http
PassWord.class
Test.class
mine
util
SearchFile.class
TestSearchFile.class
test
A.class
ArraysDemo.class
B.class
ByteArrayInputStreamDemo.class
DataInputStreamAndByteArrayInputStreamDemo.class
DataInputStreamDemo.class
DeepCloneDemo.class
FileDemo$1.class
FileDemo.class
FileInputStreamDemo.class
发表评论
-
JavaWeb中监听器+过滤器+拦截器
2018-09-06 21:58 486JavaWeb中监听器+过滤器+拦截器区别、配置和实 ... -
Bigdecimal 保留小数位
2018-07-20 17:01 450Bigdecimal 保留小数位 ... -
BigDecimal 相关计算
2018-07-20 16:58 440BigDecimal计算 import jav ... -
Java使double保留两位小数的多方法 Java保留两位小数
2018-07-20 14:49 484Java使double保留两位小数的多方法 Java保留两位 ... -
BigDecimal的加减乘除及比较大小
2018-07-19 17:11 429BigDecimal的加减乘除及比较大小 ... -
java中Object转换成int或String类型方法
2018-04-28 14:38 883... -
java 四舍五入保留小数
2017-12-28 17:09 435java 四舍五入保留小数 // 方式一: double ... -
打JAR包
2012-07-03 12:04 6731. 手工打Jar包: 用这个命令:jar -cvf ... -
用java调用oracle存储过程总结
2012-06-07 15:28 741一:无返回值的存储 ... -
java String与Date类型之间的相互转换
2012-02-01 18:50 772java String与Date类型之间的相互转换 pa ... -
Java中获取日期函数应用
2012-01-19 23:56 1613Java中常用的日期获取函数的应用: (1)String ... -
计算离当前日期之前或之后任意天的日期
2012-01-19 23:39 874计算离当前日期之前或之后任意天的日期: /** * 日 ... -
java常用类解析六:IO系统文件读写工具类
2014-07-06 16:54 940几个文件读写的工具类:文本文件读写、二进制文件读写 ... -
java常用类解析四:I/O流典型使用方式
2011-11-01 00:56 737例子: package http; im ... -
java常用类解析三:IO系统装饰类
2011-11-01 00:51 772java IO系统采用装饰器模式,用一些装饰类来装饰输入输出来 ... -
java常用类解析二:IO系统输入输出类
2011-11-01 00:46 835InputStream的作用是用来表示那些从不同数据源 ... -
java常用类解析一:System类、Object类、Arrays类、Cloneable接口
2011-11-01 00:36 814java常用类解析一:System类、Object类、Arr ... -
java反射例子
2011-01-19 21:27 722java反射例子: 1.创建接口类 package ... -
java动态代理
2011-01-19 21:23 705java动态代理实现方式: 1. 创建接口 pack ... -
java静态代理
2011-01-19 21:16 690java静态代理实现: 1.创建接口 packa ...
相关推荐
主要讲解了System类、Object类、Arrays类、Cloneable接口、IO系统输入输出类及装饰类、IO系统文本读写工具类、IO系统二进制读写工具类、对象序列化工具类、File类及文件搜索工具类、java异常机制及自定义异常类、...
下面我们将详细探讨Java中28个常用的工具类,主要涉及`IO`相关的开发工具。 1. **java.lang.Math**:这个类提供了许多基础数学函数,如求平方根、最大值、最小值、随机数生成等。 2. **java.util.Arrays**:用于...
本篇文章将全面解析Java IO工具类,帮助你理解并掌握其在实际开发中的应用。 一、Java IO基础 Java IO体系主要由流(Stream)组成,分为字节流和字符流两大类,分别处理字节数据和字符数据。字节流包括InputStream...
本篇文章将详细解析Java中常用的工具类,包括字符处理、文件处理、时间操作以及图片处理等方面的知识点。 1. **字符处理**: - `java.lang.String`:String类是Java中最基础也是最常用的数据类型之一,提供了大量...
以下是根据标题“java常用工具类”和描述中提到的“date工具类”、“string工具类”等进行的详细知识点解析: 1. **Date和Calendar工具类**: - `java.util.Date`:表示特定瞬间,精确到毫秒。但直接操作日期对象...
"Java常用工具类包"是一个集合,它包含了多种针对不同场景的工具类,如文件操作、文本处理、对象转换等。下面将详细介绍这些工具类的主要功能及其应用场景。 1. **文件对比**: - Java中的`java.io.File`类可以...
9. **File工具类**: `java.io.File`类处理文件和目录的操作,如创建、删除、重命名等。 10. **验证码工具类**: 可能涉及到生成随机图片、数字或字母,如Apache Commons Codec的`org.apache.commons.codec.binary....
`java.io.File`类为开发者提供了一个简单而强大的工具来处理文件和目录。无论是创建文件还是检查文件属性,`File`类都提供了一系列方便的方法来帮助开发者高效地完成任务。掌握`File`类的基本用法对于任何Java程序员...
以上只是Java工具类的一部分,实际中还有很多实用的工具类,例如用于XML处理的`javax.xml.parsers.DocumentBuilderFactory`,用于JSON解析的`org.json.JSONObject`等。这些工具类大大简化了开发工作,提升了代码质量...
Java工具类是Java编程语言中一个非常重要的组成部分,它们提供了许多实用的方法,帮助开发者更高效地处理各种编程任务。在Java中,工具类通常被设计为静态方法集合,不依赖于实例化对象,可以直接调用类中的方法进行...
"Java常用工具类"集合了多种实用工具类,覆盖了数据库交互、数据格式转换、文件操作和电子邮件发送等多个方面。下面将详细阐述这些领域的知识点。 1. **数据库连接**: - JDBC(Java Database Connectivity):...
本文将详细介绍如何创建一个Java通用的XML解析工具类,以便于在项目中复用和简化XML处理。 首先,我们来看DOM解析方式。DOM解析器会将整个XML文档加载到内存中,形成一棵树形结构,便于对XML进行随机访问。以下是一...
这里我们将深入探讨Java中的一些常用工具类,包括文件操作、字符串处理、时间管理和数据库交互等方面。 1. 文件上传下载:Java的`java.io`和`java.nio`包提供了丰富的文件操作API。例如,`File`类用于文件和目录的...
"java常用工具类封装util.rar"这个压缩包文件很可能包含了开发者为了提高代码复用性和简洁性而编写的各种实用工具类。下面将详细介绍一些Java开发中常见的工具类及其功能。 1. **字符串处理工具类(StringUtil)**:...
这个"Java加载配置文件工具类"很可能是为了解决这个问题而创建的一个实用工具,帮助开发者更方便、高效地处理配置文件。配置文件通常以.properties或.xml格式存在,用于存储应用程序的参数、配置项等。 配置文件的...
File 类在 Java 中是操作文件和目录的核心类,它是 IO 流系统的基础。File 类不仅可以表示文件,还能表示目录(书目),它采用抽象路径名(abstract pathname)的方式来表示文件或目录的位置。File 类提供了丰富的...
这里我们探讨的“28个Java常用的工具类”集合,涵盖了字符串处理、日期时间操作、数学计算、集合操作等多个方面的实用工具。下面我们将详细分析这些工具类及其常用方法。 1. **字符串工具类**:例如`StringUtils`,...