Как прочесть больше одного файла на java?

В 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, чтобы получить поток стро