Здравствуйте, у меня такой вопрос : когда работаешь с файлами, можно ли все фалы из одной папки, к примеру : у меня есть папка "Files", в которой хранятся три текстовых документах .txt, собственно сам вопрос - могу ли я все эти 3 файла считать и получить нужную информацию, к примеру мне в этих .txt 5 строчек, из каждого .txt мне нужно получить 2 4 5 строчку, и записать их значения отдельно, это возможно? Можно ли будет определить точное количество файлов в этой папке?
В библиотеке есть удобный класс Files, представляющий массу полезных методов для работы с файлами.
Получить ссылки на все файлы в директории:
Files.list(PATH).collect(Collectors.toList());
Найти все ссылки на файлы .txt в директории:
Files.find(PATH, 1, (p, a) -> a.isRegularFile() && p.getFileName().toString().endsWith(".txt")).collect(Collectors.toList());
Пример, как вывести 2,4 и 5 строчки всех файлов с раширением txt в заданной директории:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
public class TestClass {
public static final Path PATH = Paths.get("./testdir");
public static void main(String[] args) throws IOException {
System.out.println(Files.list(PATH).collect(Collectors.toList()));
System.out.println(Files.find(PATH, 1, (p, a) -> a.isRegularFile() && p.getFileName().toString().endsWith(".txt")).collect(Collectors.toList()));
Files.find(PATH, 1, (p, a) -> a.isRegularFile() && p.getFileName().toString().endsWith(".txt"))
.forEach(p -> {
try {
System.out.println("File " + p.getFileName());
List<String> lines = Files.readAllLines(p);
System.out.println("2nd line: " + lines.get(1));
System.out.println("4th line: " + lines.get(3));
System.out.println("5th line: " + lines.get(4));
} catch (IOException e) {
e.printStackTrace();
}
});
}
}
Результат работы:
[./testdir/2.txt, ./testdir/3.txt, ./testdir/1.txt, ./testdir/0.dxd]
[./testdir/2.txt, ./testdir/3.txt, ./testdir/1.txt]
File 2.txt
2nd line: 77777
4th line: 99999
5th line: 00000
File 3.txt
2nd line: 22222
4th line: 44444
5th line: 55555
File 1.txt
2nd line: 2222
4th line: 4444
5th line: 5555
Получить список файлов в директории:
File dir = new File(path); //path указывает на директорию
File[] arrFiles = dir.listFiles();
List<File> lst = Arrays.asList(arrFiles);
отсюда
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
I know that this question is not a rare thing but nothing was helped me
Есть метод авторизации через VK API, после него запускается RecyclerView!! Щас хочу сделать авторизацию через GOOGLE Oauth2, что бы когда токен одобрен, то сразу...
Передо мной стоит задача: написать класс "Студенты" в котором они будут выбирать себе старостуНо для начала я бы хотела наделить студентов...