So far I did is
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
public class project2 {
public static void main( String[] args ) throws IOException {
File file =new File("D:/log/logging.log");
Scanner in = null;
try {
in = new Scanner(file);
while(in.hasNext())
{
String line=in.nextLine();
if(line.contains(""))
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
public class Example(
public enum Searchword {
info,debug
}}
我需要搜索该行是否包含任何一个枚举值,然后需要打印该行。是否可以搜索以及如何搜索。
最佳答案
使用 java.nio
和 Java 8 Streams - 有一种声明式方法
import java.nio.file.*;
import java.util.stream.Stream;
public class Main {
enum Search { info, debug }
public static void main(String[] args) throws Exception {
Path path = Paths.get("pathToFile");
Files.lines(path)
.filter(Main::containsSearchTerm)
.forEach(System.out::println);
}
public static boolean containsSearchTerm(String input) {
return Stream.of(Search.values())
.map(Search::name)
.anyMatch(input::contains);
}
}
关于java - 逐行读取文件并打印该行(如果该行包含枚举中的任何值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40825759/