- 浏览: 1052145 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (1355)
- test (75)
- 红茶和绿茶 (1)
- Jave SE (206)
- Oracle (19)
- English (177)
- Log4j (5)
- RIA(Rich Internet Applications) (9)
- Ext Js (6)
- Android (14)
- Logo (0)
- 文字采撷 (287)
- 使用技巧 (92)
- Project Management (22)
- Hibernate (12)
- Struts (5)
- 规则引擎 (1)
- Html & Javasctipt (56)
- Spring MVC (10)
- Maven (17)
- Java Test (17)
- Linux (16)
- Tools (1)
- CV (0)
- Middleware (2)
- HTML5 (2)
- Algorithms (4)
- Web Service (15)
- 留学 (15)
- LADP (5)
- PXCOA (0)
- SysLog (6)
- SSO (3)
- Spring Security (4)
- Spring Batch (1)
- Jmail (1)
- Bible (4)
- Java Thread (5)
- Architect (6)
- github (2)
- Java Swing (12)
- NoSQL (7)
- UML (2)
- 敏捷(Agile) (7)
- Hudson+Maven+SVN (15)
- cloud computing (2)
- Bahasa Indonesia (1)
- jBPM (6)
- 民俗知识 (3)
- Consulting (1)
- Mysql (5)
- SAP (1)
- 微信公众平台接口开发 (3)
- 做生意 (1)
- 西餐 (1)
- Banking (1)
- Flex (0)
- 黄金投资 (1)
- Apache Tomcat 集群 (3)
- Hadoop (7)
- 需求分析 (1)
- 银行知识 (3)
- 产品管理 (2)
- 钢琴Music (3)
- 设计 (3)
- Marketing (2)
- US Life (3)
- 算法 (14)
- BigData (4)
- test红茶和绿茶Jave SEOracleEnglishLog4jRIA(Rich Internet Applications)Ext JsAndroidLogo文字采撷 (0)
- Design Pattern (5)
- NodeJS&AngularJS (9)
- Python (1)
- Spring boot (0)
- ACM (3)
最新评论
-
心往圣城:
微时代-最专业的微信第三方平台。LBS定位导航,微网站,自定义 ...
微信公众平台 /微信公众平台怎么用 -
zhaojiafan:
return ReverseStr1(str.substrin ...
逆转字符串 Write a String Reverser (and use Recursion!) -
zhaojiafan:
public class StringUtils {
p ...
逆转字符串 Write a String Reverser (and use Recursion!)
在网上找了好半天都没有找到相关的小工具,最后没有办法了,自己动手写了一个,留作以后用。
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->package com.duxiu.app;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.nio.channels.FileChannel;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FileUtil {
private String fileName;// 要检索的文件名称,可以是正则表达式
private String path;// 源文件(要检索的)路径
private String copyToPath;// 检索后,要复制到目的路径
private String fileEncode;// 要检索文件的编码
private String searchContent;// 要检索文件的内容,可以是正则表达式
public FileUtil(String fileName, String fileEncode, String searchContent, String path, String copyToPath) {
this.fileName = fileName;
this.fileEncode = fileEncode;
this.path = path;
this.searchContent = searchContent;
if (!copyToPath.endsWith("\\") && !copyToPath.endsWith("/")) {
copyToPath += "\\";
}
this.copyToPath = copyToPath;
}
public void DrawFiles() {
File file = new File(path);
if (!file.exists()) {
return;
}
File[] fileLists = file.listFiles();
searchFile(fileLists);
}
/**
* 递归检索文件
*
* @param fileLists
*/
protected void searchFile(File[] fileLists) {
if (fileLists == null || fileLists.length < 1) {
return;
}
for (File file : fileLists) {
if (file.isDirectory()) {// 是目录,进行递归循环
File[] files = file.listFiles();
searchFile(files);
}
if (file.isFile()) {// 是文件,匹配要检索的文件名
String fn = file.getName();
Pattern pattern = Pattern.compile(fileName, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(fn);
if (matcher.find()) {
if (findFileContent(file)) {
String srcPath = file.getAbsolutePath();
srcPath = srcPath.substring(srcPath.indexOf("\\") + 1, srcPath.lastIndexOf("\\") + 1);
File dstFile = new File(copyToPath + srcPath);
if (!dstFile.exists()) {
dstFile.mkdirs();
}
dstFile = new File(copyToPath + srcPath + file.getName());
copyFile2(file, dstFile);
}
}
}
}
}
/**
* 检索文件内容
*
* @param file
* @return
*/
protected boolean findFileContent(File file) {
boolean isFind = false;
try {
FileInputStream fileInput = new FileInputStream(file);
InputStreamReader inputStrReader = new InputStreamReader(fileInput, fileEncode);
BufferedReader buffereReader = new BufferedReader(inputStrReader);
StringBuilder sb = new StringBuilder();
String line = "";
while ((line = buffereReader.readLine()) != null) {
sb.append(line).append("\r\n");
}
buffereReader.close();
inputStrReader.close();
fileInput.close();
Pattern pattern = Pattern.compile(searchContent, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(sb);
if (matcher.find()) {
isFind = true;
}
} catch (Exception e) {
System.out.println(file.getAbsolutePath() + "/" + file.getName() + " read error:" + e.getMessage());
}
return isFind;
}
/**
* 拷贝文件
*
* @param src
* @param dest
*/
public void copyFile2(File src, File dest) {
try {
// Create channel on the source
FileChannel srcChannel = new FileInputStream(src).getChannel();
// Create channel on the destination
FileChannel dstChannel = new FileOutputStream(dest).getChannel();
// Copy file contents from source to destination
dstChannel.transferFrom(srcChannel, 0, srcChannel.size());
// Close the channels
srcChannel.close();
dstChannel.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 对UTF-8编辑的文件拷贝有问题
*
* @param src
* @param dst
*/
@Deprecated
public void copyFile(File src, File dst) {
int BUFFER_SIZE = 1024 * 2;
try {
InputStream in = null;
OutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(src), BUFFER_SIZE);
out = new BufferedOutputStream(new FileOutputStream(dst), BUFFER_SIZE);
byte[] buffer = new byte[BUFFER_SIZE];
while (in.read(buffer) > 0) {
out.write(buffer);
}
} finally {
if (null != in) {
in.close();
}
if (null != out) {
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getCopyToPath() {
return copyToPath;
}
public void setCopyToPath(String copyToPath) {
this.copyToPath = copyToPath;
}
public static void main(String[] args) {
String fileName = "index.jsp";
String path = "F:\\project\\eclipse33workspace\\DuxiuAbo\\ROOT\\areas";
String copyToPath = "D:\\simone";
String fileEncode = "utf-8";
String searchContent = "/javascript/area/inc.js";
FileUtil fileUtil = new FileUtil(fileName, fileEncode, searchContent, path, copyToPath);
fileUtil.DrawFiles();
}
}
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.nio.channels.FileChannel;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class FileUtil {
private String fileName;// 要检索的文件名称,可以是正则表达式
private String path;// 源文件(要检索的)路径
private String copyToPath;// 检索后,要复制到目的路径
private String fileEncode;// 要检索文件的编码
private String searchContent;// 要检索文件的内容,可以是正则表达式
public FileUtil(String fileName, String fileEncode, String searchContent, String path, String copyToPath) {
this.fileName = fileName;
this.fileEncode = fileEncode;
this.path = path;
this.searchContent = searchContent;
if (!copyToPath.endsWith("\\") && !copyToPath.endsWith("/")) {
copyToPath += "\\";
}
this.copyToPath = copyToPath;
}
public void DrawFiles() {
File file = new File(path);
if (!file.exists()) {
return;
}
File[] fileLists = file.listFiles();
searchFile(fileLists);
}
/**
* 递归检索文件
*
* @param fileLists
*/
protected void searchFile(File[] fileLists) {
if (fileLists == null || fileLists.length < 1) {
return;
}
for (File file : fileLists) {
if (file.isDirectory()) {// 是目录,进行递归循环
File[] files = file.listFiles();
searchFile(files);
}
if (file.isFile()) {// 是文件,匹配要检索的文件名
String fn = file.getName();
Pattern pattern = Pattern.compile(fileName, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(fn);
if (matcher.find()) {
if (findFileContent(file)) {
String srcPath = file.getAbsolutePath();
srcPath = srcPath.substring(srcPath.indexOf("\\") + 1, srcPath.lastIndexOf("\\") + 1);
File dstFile = new File(copyToPath + srcPath);
if (!dstFile.exists()) {
dstFile.mkdirs();
}
dstFile = new File(copyToPath + srcPath + file.getName());
copyFile2(file, dstFile);
}
}
}
}
}
/**
* 检索文件内容
*
* @param file
* @return
*/
protected boolean findFileContent(File file) {
boolean isFind = false;
try {
FileInputStream fileInput = new FileInputStream(file);
InputStreamReader inputStrReader = new InputStreamReader(fileInput, fileEncode);
BufferedReader buffereReader = new BufferedReader(inputStrReader);
StringBuilder sb = new StringBuilder();
String line = "";
while ((line = buffereReader.readLine()) != null) {
sb.append(line).append("\r\n");
}
buffereReader.close();
inputStrReader.close();
fileInput.close();
Pattern pattern = Pattern.compile(searchContent, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(sb);
if (matcher.find()) {
isFind = true;
}
} catch (Exception e) {
System.out.println(file.getAbsolutePath() + "/" + file.getName() + " read error:" + e.getMessage());
}
return isFind;
}
/**
* 拷贝文件
*
* @param src
* @param dest
*/
public void copyFile2(File src, File dest) {
try {
// Create channel on the source
FileChannel srcChannel = new FileInputStream(src).getChannel();
// Create channel on the destination
FileChannel dstChannel = new FileOutputStream(dest).getChannel();
// Copy file contents from source to destination
dstChannel.transferFrom(srcChannel, 0, srcChannel.size());
// Close the channels
srcChannel.close();
dstChannel.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 对UTF-8编辑的文件拷贝有问题
*
* @param src
* @param dst
*/
@Deprecated
public void copyFile(File src, File dst) {
int BUFFER_SIZE = 1024 * 2;
try {
InputStream in = null;
OutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(src), BUFFER_SIZE);
out = new BufferedOutputStream(new FileOutputStream(dst), BUFFER_SIZE);
byte[] buffer = new byte[BUFFER_SIZE];
while (in.read(buffer) > 0) {
out.write(buffer);
}
} finally {
if (null != in) {
in.close();
}
if (null != out) {
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getCopyToPath() {
return copyToPath;
}
public void setCopyToPath(String copyToPath) {
this.copyToPath = copyToPath;
}
public static void main(String[] args) {
String fileName = "index.jsp";
String path = "F:\\project\\eclipse33workspace\\DuxiuAbo\\ROOT\\areas";
String copyToPath = "D:\\simone";
String fileEncode = "utf-8";
String searchContent = "/javascript/area/inc.js";
FileUtil fileUtil = new FileUtil(fileName, fileEncode, searchContent, path, copyToPath);
fileUtil.DrawFiles();
}
}
摘自:http://www.blogjava.net/wangxinsh55/archive/2009/11/11/301993.html
发表评论
-
各种在线工具
2018-05-10 05:52 412http://rextester.com/ -
Java Array sort and Collections sort
2018-04-11 04:55 385package com.test; imp ... -
webpack+es6+node+react初实践及总结
2018-02-01 10:38 362webpack+es6+node+react初实践及总结 ... -
Interview Preparation
2018-01-25 08:26 438Algorithms https://www. ... -
深入理解Java集合框架
2017-08-18 08:40 622https://github.com/CarpenterLe ... -
logic gate (AND, OR, XOR, NOT, NAND, NOR and XNOR)
2017-08-18 08:33 2454A logic gate is an elementary ... -
深入理解Java PriorityQueue
2017-08-18 01:25 420本文github地址 Java中PriorityQueu ... -
jwt-spring-security-demo
2017-08-12 07:30 609https://github.com/szerh ... -
Java Program to Check Whether a Number is Palindrome or Not
2017-08-08 06:59 548public class Palindrome { ... -
Java实现Tire
2017-08-07 08:14 597Java实现Tire Trie ... -
OpenID, SAML, and OAuth
2017-08-03 07:03 594Single sign-on (SSO) started i ... -
分享两个JavaEE 非常好的网站,案例丰富
2017-08-01 09:07 349http://www.mkyong.com/al ... -
Introduction to Programming in Java
2017-07-19 13:26 459http://introcs.cs.princeton.ed ... -
Two piece of code
2017-06-20 00:43 430if ( updateRe ... -
ACM Online Judge
2017-06-05 01:26 455http://acm.nyist. ... -
java枚举使用详解
2017-05-25 06:16 465package com.ljq.test; /** ... -
Longest Common Substring
2017-05-21 08:22 505Dynamic Programming | Set 29 ( ... -
Dynamic Programming
2017-05-06 10:48 366Dynamic Programming | Set 1 (O ... -
Predefined Character Classes
2017-04-24 02:45 402Predefined Character Clas ... -
IS-A Relationship And HAS-A Relationship
2017-04-13 14:50 1706One of the advantages of an Ob ...
相关推荐
此主题涉及到的“VB_dduve”是一个利用VB来读取CAD(Computer-Aided Design)DWG(Drawing)文件的参考源代码和OCX(ActiveX Control)组件。OCX是微软开发的一种控件技术,可以被嵌入到应用程序中,以提供特定的...
Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个...
7. **文件拷贝**:将所有项目文件拷贝到新建的项目文件夹中,是为了确保所有必要的组件和依赖都在正确的位置,以便于在VS2010中正确加载和运行项目。 8. **项目打开与编辑**:在VS2010中打开项目,开发者可以编辑源...
**memcached源代码分析** **一、memcached简介** memcached是一款高性能、分布式内存对象缓存系统,用于在分布式环境中快速存储和检索数据。它通过将数据存储在内存中,提高了应用程序的性能,减少了对数据库的...
此外,“想深入学习autoit的可以看一看”意味着通过研究这个工具的源代码,初学者可以学习到AutoIt的许多实用技巧和高级用法,这对于想要提升AutoIt编程技能的人来说是一个宝贵的资源。 “免费的哦”表明这个工具是...
内容简介:用Netbeans基于Java开发的语义关联词汇检索原型系统,内含源代码,数据库、jar包等. 包含了: (1)选择1个词汇,可以列出语义关系的其它词汇; (2)计算第1个与第2个词汇之间的语义距离。 (3)数据库...
《数据库原理课程设计——图书管理系统源代码解析》 在学习数据库原理时,课程设计往往是一项重要的实践环节。这里我们关注的是一个基于Myeclipse集成开发环境和SQL Server 2005数据库的图书管理系统源代码。这个...
"数据结构C++描述--STL源代码"这本书可能会涵盖STL的实现细节、设计模式以及如何在实际项目中有效利用STL等内容。对于有C++基础,特别是对标准模版库有一定了解的开发者来说,这是一本非常有价值的参考书。通过阅读...
编写一个`FileOperate`类,实现创建目录、清空目录、列出目录内容、按后缀名筛选文件、搜索文件和拷贝文件等方法。这要求对文件系统的操作有深入理解。 **实验目的与要求** 1. 理解数据流的含义。 2. 了解Java流的...
描述中的 "一个目录拷贝的源码例子,可以整个目录检索和拷贝" 提到的功能是,该程序不仅能够复制目录下的所有文件,还包括子目录及其包含的所有内容。这通常涉及到递归算法,即程序会遍历目录结构,对每个找到的子...
文件系统的主要功能包括按名存取文件、建立和维护文件目录、文件查找和定位、存储空间的分配和管理、提供文件存取方法、实现文件共享、保护和保密,以及提供用户友好的操作命令和与设备管理的接口。文件目录通常包含...
7. **性能优化**:memcached的设计目标是极致的性能,因此在源代码中可以看到许多性能优化策略,如内存预分配、零拷贝技术以及最小化系统调用等。 8. **分布式特性**:虽然memcached本身是单进程的,但在分布式环境...
实例69 快速检索指定文件 实例70 拷贝、删除和移动文件 实例71 读写INI文件 实例72 读写大块资料(二进制)文件 实例73 文件变更通知 第8章 数据库 实例74 格式化数字 实例75 ...
3:可以在不下载ZIP.RAR.ISO文件的情况下查看文件里面的目录文件. 4:支持多语言. 5:操作综合其它软件. 6:自定义快捷键. 7:在IE工具栏上加按钮,可以直接拖动连接到按钮上下载. 8:注册采用激活方式. 9:采用Messenger的...
- 实验一:使用`System.in.read()`读取用户输入的字节数据,并将其保存到数组,然后写入到指定文件。 - 实验二:比较`FileInputStream`和`FileReader`读取文件的性能差异。 - 实验三:使用文件输入流读取特定文本...
本章节将详细介绍如何在Eclipse环境下搭建Heritrix开发环境,包括类库导入、源代码拷贝、配置文件修改及运行参数设置等内容。 ##### 1. 导入类库 Heritrix运行所需的类库位于`heritrix-1.14.4-src\lib`目录下,...
我想知道的人就多了,其实暴风影音就是Media Player Classic,暴风影音只是同我一样从Gabest官方下载到了Media Player Classic的源码,不同的是,暴风影音将Media Player Classic改成了自己的名字并加入了许多的解码器,...
2. **拷贝文件**:将压缩包中的所有源代码文件(可能包括`lda.cc`和其他头文件等)复制到工程的工作目录。 3. **添加头文件和源文件**:在工程设置中,你需要将这些文件添加到工程的源文件列表中,这样编译器就知道...
/usr/bin存放应用程序,/usr/sbin存放管理程序,/usr/include存放开发和编译应用程序所需的头文件,/usr/share/man存放帮助文档,/usr/lib存放常用的动态链接库和软件包配置文件,/usr/src则是Linux内核的源代码。...