forked from igor-baiborodine/java-various-examples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFilesApiImprovementsExample.java
More file actions
41 lines (33 loc) · 1.3 KB
/
Copy pathFilesApiImprovementsExample.java
File metadata and controls
41 lines (33 loc) · 1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package com.kiroule.ocpupgradejava8.topic6_2;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.List;
import java.util.function.BiPredicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author Igor Baiborodine
*/
public class FilesApiImprovementsExample {
public static void main(String... args) throws IOException {
Path start = new File(".").toPath();
int maxDepth = Integer.MAX_VALUE;
BiPredicate<Path, BasicFileAttributes> topicDirectoriesMatcher =
(path, basicFileAttributes) -> basicFileAttributes.isDirectory() && path.toString()
.contains("topic");
Stream<Path> pathStream = Files.find(start, maxDepth, topicDirectoriesMatcher);
System.out.println("Topic directories ASC:");
pathStream.sorted().forEach(System.out::println);
List<Path> paths = Files.walk(start)
.filter(p -> p.toString().contains("FilesApiImprovementsExample.java"))
.collect(Collectors.toList());
System.out.println("\nFile path: " + paths.get(0));
System.out.println("\nFile content: ");
Files.lines(paths.get(0), Charset.defaultCharset())
.forEach(System.out::println);
}
}