首页 > 代码库 > 在本地文件中查找固定字符串(Java)
在本地文件中查找固定字符串(Java)
适用范围:只适用于在文本文档中查找(如,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<Search> list = new ArrayList<Search>();23 try {24 Collection<File> files = FileUtils.listFiles(searchDir, null, true);25 List<String> 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; }}
在本地文件中查找固定字符串(Java)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。