Позвольте мне предисловие к этому посту с одной осторожностью. Я абсолютный новичок в том, что касается Java. Некоторое время я программировал PHP и выключал его, но я был готов сделать настольное приложение, поэтому я решил использовать Java по разным причинам.
Приложение, над которым я работаю, находится на начальных этапах (менее 5 классов), и мне нужно прочитать байты из локального файла. Как правило, файлы в настоящее время имеют размер менее 512 КБ (но могут увеличиться в будущем). В настоящее время я использую FileInputStream
для чтения файла в трехбайтовые массивы, что полностью соответствует моим требованиям. Тем не менее, я видел упомянутое BufferedInputStream
и задавался вопросом, лучше ли то, как я сейчас это делаю, или мне следует также использовать BufferedInputStream
.
Я провел некоторое исследование и прочитал несколько вопросов здесь о переполнении стека, но у меня все еще есть проблемы с пониманием наилучшей ситуации, когда использовать и не использовать BufferedInputStream
. В моей ситуации первый массив, в который я считал байты, занимает всего несколько байтов (меньше 20). Если данные, которые я получаю, хороши в этих байтах, тогда я читаю остальную часть файла в еще два байтовых массива различного размера.
Я также слышал, как многие люди упоминали профилирование, чтобы увидеть, какое из них более эффективно в каждом конкретном случае, однако у меня нет опыта профилирования, и я не совсем уверен, с чего начать. Я также хотел бы получить некоторые предложения по этому вопросу.
Извините за такой длинный пост, но я действительно хочу узнать и понять, как лучше всего делать эти вещи. У меня всегда есть плохая привычка угадывать мои решения, поэтому я хотел бы получить обратную связь. Спасибо!