博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 在本地文件中查找固定字符串
阅读量:4138 次
发布时间:2019-05-25

本文共 2765 字,大约阅读时间需要 9 分钟。

适用范围:只适用于在文本文档中查找(如,txt、java、c等等,并不适用与doc、xls等等这些文件),可嵌套文件夹。但是对中文不支持。

例如:文件夹:F:/demo

子文件夹:F:/demo/ert

 查找结果:

最后附上全部代码:

1 package com.stafen.main; 2  3 import java.io.File; 4 import java.io.IOException; 5 import java.util.ArrayList; 6 import java.util.Collection; 7 import java.util.List; 8  9 import org.apache.commons.io.FileUtils;10 import org.apache.commons.io.IOUtils;11 12 public class Test {13   /** 要查找的字符串 **/14     private static String strSearch = "QCNEA";15     /** 要查找的目录名称 **/16     private static String strPath = "E:/Project";17     18     @SuppressWarnings("unchecked")19     public static void main(String[] args) {20         21         File searchDir = new File(strPath);22         List
list = new ArrayList
();23 try {24 Collection
files = FileUtils.listFiles(searchDir, null, true);25 List
lines = null;26 for (File file : files) {27 try {28 lines = FileUtils.readLines(file, "UTF-8");29 } catch (IOException e) {30 e.printStackTrace();31 }32 for (int i = 0; i < lines.size(); i++) {33 if (lines.get(i).indexOf(strSearch) != -1) {34 Search s = new Search();35 s.setFilename(file.getPath());36 s.setLine(i + 1);37 s.setContent(lines.get(i));38 list.add(s);39 }40 }41 }42 StringBuffer sb = new StringBuffer();43 if(list.size() == 0) {44 System.out.println("【没有查到该字符串!】");45 return ;46 }47 for (Search s : list) {48 sb.append("文件路径:" + s.getFilename() + "\n行数:" + s.getLine() + " \n所在行内容:" + s.getContent()).append(IOUtils.LINE_SEPARATOR);49 sb.append("---------------------------------------------------------------------\n");50 }51 System.out.println(sb.toString());52 } catch (Exception e) {53 System.out.println("【没有找到该目录!】");54 }55 }56 57 }

 Search.java文件

public class Search {    private String filename;    private int line;    private String content;    public String getFilename() {        return filename;    }    public void setFilename(String filename) {        this.filename = filename;    }    public String getContent() {        return content;    }    public void setContent(String content) {        this.content = content;    }    public void setLine(int line) {        this.line = line;    }    public int getLine() {        return line;    }}

 

转载地址:http://grovi.baihongyu.com/

你可能感兴趣的文章
Timestamping Linux kernel printk output in dmesg for fun and profit
查看>>
There's Much More than Intel/AMD Inside
查看>>
apache和tomcat整合
查看>>
java虚拟机错误问题
查看>>
oracle建立表空间
查看>>
oracle分区表的性能提升
查看>>
"Cannot allocate memory" OutofMemory when call Ant to build Polish project in Tomcat
查看>>
dumpcap抓包(python)
查看>>
查看文件是否被其他进程访问
查看>>
字符编码详解
查看>>
python使用dpkt分析wireshak报文(Modbus规约)
查看>>
css中的IFC
查看>>
CentOS 6.5下 mysql用户root登录不了
查看>>
windows + tomcat 部署web服务 http 改为https访问方法
查看>>
Windows系统下Apache 服务器启动以及过程中产生问题的解决办法
查看>>
Oracle服务说明
查看>>
异常收集(三):Missing artifact com.oracle:ojdbc6:jar:1.0 两种解决方案
查看>>
异常收集(四):Plugin execution not covered by lifecycle configuration
查看>>
异常收集(五):Io 异常: The Network Adapter could not establish the connection
查看>>
JSP中的转义字符
查看>>