Откройте несколько «TXT» в папке в Java - PullRequest
0 голосов
/ 01 декабря 2018

В Java 8 мне нужно прочитать и сохранить несколько текстовых файлов, которые находятся в папке.С несколькими я имею ввиду 2000. Как мне это сделать?Я могу открыть папку следующим образом:

try (Stream<Path> paths = Files.walk(Paths.get("home\path"))) {
    paths
       .filter(Files::isRegularFile)
       .collect(Collectors.toList())
       .forEach(System.out::println);
} 

Это также печатает расположение файлов.Я сделал это только для того, чтобы узнать, что могу попасть в папку.

Можно читать файлы, как описано ниже.Но как мне получить имя всех 2000 файлов, которые я хочу?

File encyptFile=new File("file1.txt");
System.out.println(encyptFile.canRead());

1 Ответ

0 голосов
/ 01 декабря 2018

Вы можете сделать это, вызвав метод Path::getFileName, например:

try (Stream<Path> paths = Files.walk(Paths.get("home\path"))) {
paths
   .filter(Files::isRegularFile)
   .map(Path::getFileName)
   .collect(Collectors.toList())
   .forEach(System.out::println);
}

Если вам также требуется некоторая проверка расширения, вы можете добавить фильтр по расширению для имени файла, например, path.toString().toLowerCase().endsWith(".txt")

Пример:

try (Stream<Path> paths = Files.walk(Paths.get("home\path"))) {
paths
   .filter(Files::isRegularFile)
   .filter(path -> path.toString().toLowerCase().endsWith(".txt"))
   .map(Path::getFileName)
   .collect(Collectors.toList())
   .forEach(System.out::println);
}
...