Я читаю в текстовом файле, используя FileInputStream
, который помещает содержимое файла в байтовый массив. Затем я преобразую байтовый массив в строку, используя новую строку (байт).
Когда у меня есть строка, я использую String.split("\n")
, чтобы разбить файл на массив строк, а затем взять этот массив строк и проанализировать его, выполнив String.split(",")
и удерживая содержимое в Arraylist.
У меня есть файл 200MB + , и ему не хватает памяти, когда я запускаю JVM с 1 ГБ памяти. Я знаю, что где-то правильно что-то делаю, я просто не уверен, что мой метод синтаксического анализа неправильный или структура данных, которую я использую.
У меня уходит также около 12 секунд, чтобы проанализировать файл, который выглядит как много времени. Кто-нибудь может указать на то, что я могу делать, из-за чего у меня заканчивается память и что может вызывать медленную работу моей программы?
Содержимое файла выглядит так, как показано ниже:
"12334", "100", "1.233", "TEST", "TEXT", "1234"
"12334", "100", "1.233", "TEST", "TEXT", "1234"
.
.
.
"12334", "100", "1.233", "TEST", "TEXT", "1234"
Спасибо