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