这个是笔试题遇到的,一时半会儿不知道怎么下笔,说到底还是基础还是不行,还得好好努力。
首先先判断是否目录还是文件,如果目录通过搜索目录下所有文件是否包含字符串。
package com.example.websocket.config;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Test{
public static void search(File file, String str) throws FileNotFoundException{
Scanner scanner = new Scanner(file,"gbk");//文件编码,可以改成utf-8格式
int k = 0;
while(true){
if(scanner.hasNext()==false)
break;
String s = scanner.nextLine();
k++;
if(s.contains(str)){
String a = "文件"+file.getName()+"第"+k+"行内容:"+s;
System.out.println(a);
}
}
}
public static void isFileorDirectory(File file, String str) throws FileNotFoundException {
if(!file.isDirectory()){//判断是否文件
search(file,str);
}
File[] fileNum = file.listFiles();
if(fileNum==null)
return;
for(File file1: fileNum){
if(file1.isFile()){
search(file1, str);//是文件,直接查找
}
if(file1.isDirectory()){//是目录,则对其目录下的目录或文件继续查找
isFileorDirectory(file1,str);
}
}
}
public static void main(String[] args) throws FileNotFoundException {
isFileorDirectory(new File("目录或者文件名"),"字符串");
}
}