Java: Как прочитать файл без раздувания пула строк? - PullRequest
0 голосов
/ 11 ноября 2019

Пожалуйста, посмотрите на следующий фрагмент кода:

public static void main(String[] args) {
        BufferedReader reader;
        try {
            reader = new BufferedReader(new FileReader(
                    "myfile.txt"));
            String line = reader.readLine();
            while (line != null) {
                System.out.println(line);
                // read next line
                line = reader.readLine();
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

Как видите, каждая строка файла читается и сохраняется в переменной 'line'. Поскольку строка имеет тип string, ее содержимое хранится в пуле строк. Строки, хранящиеся в пуле строк, не собираются Java-сборщиком мусора и остаются там в течение всего времени жизни программы.

Если файл очень большой, пул строк может быть раздутым. Есть ли у вас какие-либо идеи, как прочитать файл без , сохранив все его строки в пуле строк? Я просто должен был хранить строки файла как любой объект, а это значит, что он будет удален из кучи, когда он не нужен.

...