Java 在本地文件中查找固定字符串
适用范围:只适用于在文本文档中查找(如,txt、java、c等等,并不适用与doc、xls等等这些文件),可嵌套文件夹。但是对中文不支持。
例如:文件夹:F:/demo

子文件夹:F:/demo/ert

查找结果:

最后附上全部代码:
package com.stafen.main; import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils; public class Test {
/** 要查找的字符串 **/
private static String strSearch = "QCNEA";
/** 要查找的目录名称 **/
private static String strPath = "E:/Project"; @SuppressWarnings("unchecked")
public static void main(String[] args) { File searchDir = new File(strPath);
List<Search> list = new ArrayList<Search>();
try {
Collection<File> files = FileUtils.listFiles(searchDir, null, true);
List<String> lines = null;
for (File file : files) {
try {
lines = FileUtils.readLines(file, "UTF-8");
} catch (IOException e) {
e.printStackTrace();
}
for (int i = 0; i < lines.size(); i++) {
if (lines.get(i).indexOf(strSearch) != -1) {
Search s = new Search();
s.setFilename(file.getPath());
s.setLine(i + 1);
s.setContent(lines.get(i));
list.add(s);
}
}
}
StringBuffer sb = new StringBuffer();
if(list.size() == 0) {
System.out.println("【没有查到该字符串!】");
return ;
}
for (Search s : list) {
sb.append("文件路径:" + s.getFilename() + "\n行数:" + s.getLine() + " \n所在行内容:" + s.getContent()).append(IOUtils.LINE_SEPARATOR);
sb.append("---------------------------------------------------------------------\n");
}
System.out.println(sb.toString());
} catch (Exception e) {
System.out.println("【没有找到该目录!】");
}
} }
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;
}
}
Java 在本地文件中查找固定字符串的更多相关文章
- Linux 在文件中查找某字符串
命令: grep 'word' filename 在多个文件中查找: grep 'word' file1 file2 file3 更多用法参考:https://www.howtoforge.com/t ...
- Linux系统下,在文件中查找某个字符串
在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车. Vim会跳转到第一个匹配.按下n查找下一个,按下N查找上一个. Vim查找支持正则表达式,例如/vim$匹配行尾的" ...
- 在文件夹中 的指定类型文件中 查找字符串(CodeBlocks+GCC编译,控制台程序,仅能在Windows上运行)
说明: 程序使用 io.h 中的 _findfirst 和 _findnext 函数遍历文件夹,故而程序只能在 Windows 下使用. 程序遍历当前文件夹,对其中的文件夹执行递归遍历.同时检查遍历到 ...
- linux下在多个文件夹中查找指定字符串的命令
例如,想要在当前文件夹下的多个.c或者.txt文件中查找“shutdown”字符串, 可以使用“grep shutdown ./*.c”或“grep shutdown ./*.txt”即可 使用fin ...
- Linux平台从文件中查找字符赋值于变量
以telnet方式登录Linux主机,在默认目录下用命令创建一个包含DUT wanIP的文本文件.[root] echo wanIP=88.0.100.253 > ./wanIP.txt在默认目 ...
- grep在指定类型的文件中查找字符 (转载)
转自:http://blog.csdn.net/qvbfndcwy/article/details/8127329 find -name '*.php'|xargs grep 'include'//在 ...
- 在某个目录下的所有文件中查找包含某个字符串的Windows命令
findstr可以完成这个工作. 上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中查找"string"这个字符串. *.*表示所有类型的文件. /s 表示当前目录 ...
- 在文件夹下所有文件中查找字符串(linux/windows)
在linux下可以用 grep "String" filename.txt#字符串 文件名grep -r "String" /home/#递归查找目录下所有文件 ...
- Java-Runoob-高级教程-实例-数组:14. Java 实例 – 在数组中查找指定元素
ylbtech-Java-Runoob-高级教程-实例-数组:14. Java 实例 – 在数组中查找指定元素 1.返回顶部 1. Java 实例 - 在数组中查找指定元素 Java 实例 以下实例 ...
随机推荐
- javascript and dom1
<script type="text/javascript"> //数组 var beatles=Array(4); var beatles=Array(); cons ...
- jquery插件FlexiGrid的使用
jquery插件FlexiGrid的使用 已不推荐下载,如要下载去这个连接下载最新的 http://gundumw100.iteye.com/blog/545610 更新于2009-11-30 先看 ...
- C语言两个libxml2库使用的问题
最近使用libxml2想做点东西,翻看一些example后还是有些疑问,去segmentfault问了下,感谢@pingjiang的热心解答,问题解决,记录如下 (一)如下是一个XML文件,p为根结点 ...
- leetcode第14题--Longest Common Prefix
Problems:Write a function to find the longest common prefix string amongst an array of strings. 就是返回 ...
- socket串口通信
SocketServer: #include <arpa/inet.h> #include <stdio.h> #include <stdlib.h> #inclu ...
- WPF开发的FTP文件上传工具
前言 最近楼主在改版的项目里有使用到FTP上传文件,所以看到之前的项目里FTP上传的功能,然后抽个时间学习一番,做着做着就作出了这个工具了(虽然有些验证的功能没加上),但是基本的上传功能还是很好用的, ...
- Hadoop 使用FileSystem API 读取数据
代码: package com.hadoop; import java.io.IOException; import java.io.InputStream; import java.net.URI; ...
- .NET4.5 Console.ReadKey()在多线程下的BUG
.NET 4.5 在多线程的控制台里,Console.ReadKey()可能会造成线程死锁.看代码: static void Main(string[] args) { System.Timers.T ...
- 寻找最大的k个数
这个题目是非常经典的一个题目,解法也有很多,现在就把我已经理解的解法记录下来. 题目描述 有n个无序的数,它们各不相等,怎样选出其中的最大的k个数呢? 题目分析: 解法1: 最容易想到的就是把n个数进 ...
- SolrCloud攻略
SolrCloud攻略 近期一直在使用SolrCloud,乘着酒醉大概总结一下. 1.安装 原来一直有个误区,认为SolrCloud启动时,必须至少有个core才可以,其实不然. 首先按照Solr官方 ...