`

遍历文件夹查找字符串并写入文件小例子

 
阅读更多

package com.zeng.find;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class FindFile {
	private static ArrayList filelist = new ArrayList();

	public static void main(String[] args) {

		long a = System.currentTimeMillis();
		refreshFileList("C:\\Documents and Settings\\Nick\\706090_B2C_WEB_REL_COPY\\B2C_WEB\\B2C_WEB_src");
		String content = readFile(filelist, "session.setAttribute");
		writeFile(content);
		System.out.println(System.currentTimeMillis() - a);
	}

	public static void refreshFileList(String strPath) {
		File dir = new File(strPath);
		File[] files = dir.listFiles();

		if (files == null)
			return;
		for (int i = 0; i < files.length; i++) {
			if (files[i].isDirectory()) {
				refreshFileList(files[i].getAbsolutePath());
			} else {
				String strFileName = files[i].getAbsolutePath().toLowerCase();
				if (strFileName.endsWith(".java")) {
					System.out.println("---" + strFileName);
					filelist.add(files[i].getAbsolutePath());
				}
			}
		}
	}

	public static String readFile(ArrayList list, String keyStr) {
		
		StringBuffer sb = new StringBuffer();

		try {
			for (int i = 0; i < list.size(); i++) {
				String filePath = (String) list.get(i);
				FileReader file = new FileReader(filePath);
				BufferedReader reader = new BufferedReader(file);
				String line = reader.readLine();
				while (line != null) {

					if (line.indexOf(keyStr) != -1
							&& !line.trim().substring(0, 2).equals("//")) {
						System.out.println(line);
						sb.append(line.trim()+"      所在java类:"+filePath.substring(filePath.lastIndexOf("\\")+1)+"\n");
					}
					
					line = reader.readLine();
				}
				reader.close();
			}

		} catch (IOException e) {
			e.printStackTrace();
		} 
		
		return sb.toString();
	}

	public static void writeFile(String content) {
		
		try {
			File f = new File("C:\\Documents and Settings\\Nick\\桌面\\session_attribute.txt");
			if (!f.exists()) {
				System.out.print("文件不存在");
				f.createNewFile();
			}
			BufferedWriter output = new BufferedWriter(new FileWriter(f));
			output.write(content);
			output.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
 
分享到:
评论

相关推荐

    bat文件 字符串提取&替换等操作

    例如,遍历文件夹中的所有文件,对每个文件的每一行进行字符串处理。 5. **变量和通配符**: 批处理文件支持变量和通配符。变量用`SET`命令定义,如`SET var=值`,通配符如`*`和`?`用于匹配多个字符或单个字符。 ...

    C#编写的读取文件夹下所有的文件,文件格式可以根据自己的要求设定。

    接下来,为了将这些文件信息存储在二维数组中,我们可以创建一个二维字符串数组,然后遍历`files`数组,将每个文件名添加到二维数组中。例如: ```csharp string[,] fileArray = new string[100, 2]; // 假设我们...

    VC6.0 遍历文件 代码

    - 在这个例子中,没有显示具体的处理步骤,但通常会包括读取图像数据、修改或分析数据,然后可能写入新的BMP文件或者进行其他操作。 4. **处理其他格式的图像**: - 对于非BMP格式如JPEG或PNG,使用GDI+库来处理...

    Lua中遍历文件操作代码实例

    总结一下,Lua中遍历文件主要依赖于`io.popen`函数来执行操作系统命令,结合字符串处理函数如`string.find`来筛选特定类型的文件,以及`io.*`系列函数进行文件的读写操作。在实际应用中,你可能需要根据具体需求调整...

    data-from-txt-files.zip_labview txt_labview 定位_labview 文件夹

    如果数据的位置不固定,可能需要利用搜索算法,如“查找字符串”或“查找数组元素”,来定位目标数据。 综上所述,"data-from-txt-files.zip"示例展示了如何在LabVIEW中实现以下功能: 1. 使用LabVIEW的文件I/O...

    级别文件夹字符串:该函数从提供的路径中返回用户选择的级别文件夹名称。-matlab开发

    这种功能在需要对文件夹层次进行操作时尤其有用,比如在遍历目录、读取或写入文件时。 标题中的"级别文件夹字符串:该函数从提供的路径中返回用户选择的级别文件夹名称"指的是一种自定义函数,它能够根据用户的需求...

    Matlab获得指定文件夹下的文件名.pdf

    这个过程涉及到字符串处理,包括查找数字子串、拼接字符串和转换字符串为数值。这个代码片段对于理解MATLAB中文件操作和字符串处理的综合运用很有帮助。在实际应用中,可能需要根据具体需求对这段代码进行适当的调整...

    读取excel文件,生成java文件9.pdf

    5. **GetAllFile**函数: 这个递归函数用于遍历指定目录下的所有子目录和文件,查找特定扩展名(如 "*.xls")的文件。它将找到的文件路径添加到传递的ArrayList中。 6. **Button2_Click**事件处理程序: 虽然在提供的...

    Python批量提取中英文混排中英文文本.zip

    在批量处理多个文件时,可以将这个过程封装到一个函数中,然后遍历文件夹,对每个文件执行相同的操作。例如,你可以创建一个名为`extract_english_texts`的函数,接受文件路径作为参数,然后调用这个函数处理所有...

    java源码包---java 源码 大量 实例

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    一段ASP单页显示文件夹下所有图片的代码

    此功能可以通过遍历文件夹中的每个文件,并通过文件扩展名来判断哪些文件是图片,从而实现。 在详细分析知识点之前,先来了解ASP中几个关键的技术要素: 1. FileSystemObject: 这是一个由Scripting库提供的COM对象...

    java源码包2

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    java源码包3

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    java源码包4

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后...

    C#.net_经典编程例子400个

    256 实例175 清空回收站 257 6.2 查找文件 258 实例176 搜索文件 259 实例177 检查文件是否存在 260 实例178 提取指定文件夹目录 261 6.3 修改文件 261 实例179 更改文件名称 ...

Global site tag (gtag.js) - Google Analytics