可以给BufferedReader缓冲区大小,但是您必须实际读取行。最简单的方法是:
Path path = Paths.get("my.log");
// Assume UTF-8 (is default):
Optional<String> img = Files.lines(path)
.filter(line -> line.matches("Image_(10?|5|25).*"))
.findAny();
String file = img.orElse("NOT FOUND");
或更佳
try (Stream<String> in = Files.lines(path)) {
Optional<String> img = in
.filter(line -> line.matches("Image_(10?|5|25).*")
.findAny();
String file = img.orElse("NOT FOUND");
}
说明:
一个人可以读取一些字节缓冲区,然后将其转换为字符串以进行搜索。
问题在于,对于UTF-8,缓冲区可能会在拆分的多字节序列上结束。
不难处理,但是为什么不使用简单的代码,而不取决于缓冲区的大小。
本文链接:https://www.f2er.com/3108168.html