Я пытаюсь сопоставить путь с потоком пути, может ли кто-нибудь помочь
Вот исходный код:
public static void main(String[] args) {
try (Stream<Path> paths = Files.walk(Paths.get("C:/Users/UCD/eclipse-workspace/metrics_cal/src/test/resources/xerces2-j-Xerces-J_2_8_0")))
{
Path path1 = Paths.get("\"C:/Users/UCD/eclipse-workspace/metrics_cal/src/test/resources/xerces2-j-Xerces-J_2_8_0/xerces2-j-Xerces-J_2_8_0/src/org/apache/xerces/jaxp/SAXParserImpl.java\";");
} catch (IOException e) {
e.printStackTrace();
}
}
Пути имеют набор всех путей к папке, а путь1 - это тот, который я хочу сопоставить, но проблема в том, что пути - это поток, а путь1 - нет, как я могу это сделать?




Вы можете использовать Stream.anyMatch():
String directory = "C:/Users/UCD/eclipse-workspace/metrics_cal/src/test/resources/xerces2-j-Xerces-J_2_8_0";
String file = "\"C:/Users/UCD/eclipse-workspace/metrics_cal/src/test/resources/xerces2-j-Xerces-J_2_8_0/xerces2-j-Xerces-J_2_8_0/src/org/apache/xerces/jaxp/SAXParserImpl.java\";";
try (Stream<Path> paths = Files.walk(Paths.get(directory))) {
Path path1 = Paths.get(file);
if (paths.anyMatch(path1::equals)){
// do something
}
} catch (IOException e) {
e.printStackTrace();
}
Stream - это мощный API в java. Вы можете использовать anyMatch или метод filter в Stream, чтобы он соответствовал path1. bool match = paths.anyMatch (w -> w.equals (path1)) бетонная страница.com/java/jdk-8/…