В Java есть несколько способов прочитать больше одного файла. Вот несколько способов, которые вы можете применить в своей программе.
1. Использование класса FileReader и BufferedReader:
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ReadMultipleFiles { public static void main(String[] args) { String[] files = {"file1.txt", "file2.txt", "file3.txt"}; for (String fileName : files) { try (BufferedReader br = new BufferedReader(new FileReader(fileName))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } } }
В этом примере мы создаем массив файлов, которые нужно прочитать, и затем проходимся по нему в цикле for-each. Для каждого имени файла мы создаем новые объекты FileReader и BufferedReader, и затем читаем файл построчно с помощью метода readLine(). Полученные строки выводятся на консоль.
2. Использование класса FileInputStream и BufferedReader:
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; public class ReadMultipleFiles { public static void main(String[] args) { String[] files = {"file1.txt", "file2.txt", "file3.txt"}; for (String fileName : files) { try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } } }
Этот пример похож на предыдущий, но вместо FileReader мы используем FileInputStream и InputStreamReader. Разница заключается в том, что FileInputStream используется для чтения байтов из файла, а InputStreamReader преобразует байты в символы, которые мы можем прочитать строками.
3. Использование класса Files из пакета java.nio:
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.stream.Stream; public class ReadMultipleFiles { public static void main(String[] args) { String[] files = {"file1.txt", "file2.txt", "file3.txt"}; for (String fileName : files) { try (Stream<String> stream = Files.lines(Paths.get(fileName))) { stream.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } } } }
В этом примере мы используем метод lines() класса Files, чтобы получить поток стро