考虑我有一个文件(只是一个摘录)
name: 'foobar'
Run Code Online (Sandbox Code Playgroud)
foobar当我发现这条线时,我喜欢检索name.
我目前的做法是
Pattern m = Pattern.compile("name: '(.+)'");
try (Stream<String> lines = Files.lines(ruleFile)) {
Optional<String> message = lines.filter(m.asPredicate()).findFirst();
if (message.isPresent()) {
Matcher matcher = m.matcher(message.get());
matcher.find();
String group = matcher.group(1);
System.out.println(group);
}
}
Run Code Online (Sandbox Code Playgroud)
看起来不太好看.过度使用模式和匹配器似乎是错误的.
有更简单/更好的方法吗?特别是如果我有多个键我喜欢这样搜索?
在Java 8中,Stream类实现了AutoCloseable.这意味着应该显式关闭流实例.
我理解为什么文件处理程序和数据库连接是可关闭的.但为什么流?