Добрый день,
Есть код, циклически пробигаем по элементам строки из файла.
Вопрос: Как записать выбраные элементы в другой файл?
InputStream istr = new FileInputStream("Path\\A.txt");
OutputStream out = new FileOutputStream("Path\\B.txt");
int isize = istr.available();
for (int b = 0; b < isize; b++)
{
out.write**(b)** // Как правильно записать "b" в файл ?
if (b % 5 == 0)
istr.skip(b+5);
}
Можно сделать так:
try (BufferedWriter writer = Files.newBufferedWriter(Paths.get("output.txt"))) {
Files
//построчно читаем каждую строку
.lines(Paths.get("input.txt"))
//разбиваем строку на символы, составляем из них пару <index,symbol>
.flatMap(e -> {
AtomicInteger index = new AtomicInteger(-1);
return Stream
.generate(() ->
new AbstractMap.SimpleEntry<>(
index.incrementAndGet(),
e.charAt(index.get())))
.limit(e.length());
})
//выбираем только пары с индексом кратным 5
.filter(e -> e.getKey() % 5 == 0)
//избавляемся от индекса
.map(Map.Entry::getValue)
//записываем в файл
.forEach(e -> {
try {
writer.write(e);
} catch (IOException ex) {
ex.printStackTrace();
}
});
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости