Освобождаете память от входного потока? - PullRequest
0 голосов
/ 11 ноября 2011

Я довольно новичок в Java, поэтому потерпите меня здесь ...

Я использую сканер для чтения InputStream (что = Class.class.getResourceAsStream("fileName.csv")).Когда файл читается, объем памяти начинается примерно с 44 000, а по окончании чтения - до 298 000.Класс в основном читает inputStream и помещает данные в некоторый ArrayLists, чтобы я мог быстро найти их.Проблема в том ... Я не могу понять, как заставить использование памяти сокращаться, как только файл будет считан.Я попытался установить object = null и / или вызвать System.gc() {что, ​​по-видимому, только предложение}, но ни одна из них не работает.Я использую метод close() для Scanner и InputStream, и пока ничего не работает.У кого-нибудь есть идеи?Наверное, возможно, я понятия не имею, о чем говорю, и так оно и должно быть, но я почти уверен, что делаю что-то не так.

Заранее спасибо.

1 Ответ

2 голосов
/ 12 ноября 2011

Как только вы закончили использовать поток ввода, вы можете установить его ссылку на null, это единственный способ попросить сборщик мусора освободить неиспользуемую память, так как мы не можем принудительно заставить GC, так что нет способа освободить память явно.

...