Пожалуйста, посмотрите на следующий фрагмент кода:
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-сборщиком мусора и остаются там в течение всего времени жизни программы.
Если файл очень большой, пул строк может быть раздутым. Есть ли у вас какие-либо идеи, как прочитать файл без , сохранив все его строки в пуле строк? Я просто должен был хранить строки файла как любой объект, а это значит, что он будет удален из кучи, когда он не нужен.