2016-07-16 3 views
0

У меня есть файл, который мне нужно загрузить в службу, и проанализировать соответствующие данные. Анализатор и загрузчик требуют InputStream. Должен ли я открыть файл дважды? Я мог бы сохранить файл в String, но иметь много из этих файлов в памяти.Нужно загружать и разбирать 15 МБ файлов, открывать файлы дважды?

EDIT: Думаю, я должен четко указать, что синтаксический анализ и загрузка являются полностью отдельными процессами.

+0

Если они являются отдельными процессами, какой у вас выбор? Неясно, что вы спрашиваете. – EJP

+0

Я пытаюсь понять, что является самым эффективным способом справиться с чем-то подобным. – Hunter

+1

Что вы подразумеваете под «отдельными процессами». Это все в одной программе или есть две совершенно разные программы? –

ответ

0

Поскольку вы разбираете его уже, было бы наиболее эффективно загрузить файл в строку. Разделите его на индексы на строку, вы сохраните память и можете просто загрузить строку, когда захотите. Это было бы самым эффективным способом, с памятью, но, возможно, не временем обработки.

Ответ на один из комментариев выше.
Отдельные процессы не означают разные потоки или процессы, просто они не нужны друг другу для работы.