Буферизованный и не буферизованный, какой использовать?

Мне жаль, если это дубликат, но я не смог найти однозначного ответа на вопрос, что является наилучшей практикой для каждого типа.

Я хотел бы знать, какие соответствующие условия определяют, когда следует использовать BufferedReader против FileReader или BufferedInput / OutputStream против FileInput / OutputStream? Есть ли какая-то формула, которая всегда скажет вам, что подходит?

Должен ли я всегда использовать буферизованный?

Благодарност

 S.Lott06 июл. 2009 г., 20:47
Что ты имеешь в виду под "окончательным"?
 Thomas Owens06 июл. 2009 г., 20:48
S.Lott: я думаю, он просто ищет, когда вы должны использовать каждый из них.
 stackMe06 июл. 2009 г., 20:49
Я думаю, определенно == что является лучшим методом для каждого типа
 S.Lott06 июл. 2009 г., 20:57
@ stackMe: Пожалуйста, обновите ваш вопрос, чтобы уточнить его. Не комментируйте свои вопросы.

Ответы на вопрос(5)

BufferedReader предоставляет вам удобствоreadLine() метод, позволяющий читать содержимое по одной строке за раз.

Решение Вопроса

если поток будет иметь небольшой доступ. Используйте небуферизованный доступ, если у вас будет относительно мало относительно больших обращений.

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

когда вы должны использовать небуферизованный ввод-вывод, это когда задержка и агрегация, наложенная буферизацией, не подходит для вашего приложения.

 Jé Queue06 дек. 2009 г., 06:08
Как насчет того, когда вы буферизуете вещи между InputStream и OutputStream (или наоборот) с помощьюbyte[]. Вы бы обернули Buffered * вокруг него?
 chaos07 дек. 2009 г., 13:05
Ничего не меняет.

"Есть ли какая-то формула, которая всегда скажет тебе, что уместно?"

Если бы оно было, оно уже было бы в библиотеках и не было бы дизайнерским решением, которое вам пришлось бы принять.

Поскольку ответа нет, вам нужно принять решение о дизайне, вы должны подумать об этом.

Или, вы можете попробовать оба варианта и посмотреть, какой из них «лучше», исходя из вашей уникальной проблемы и ваших уникальных критериев.

Большинство стандартных библиотек ввода / вывода буферизируются. Это подсказка, что большинство операций ввода-вывода выигрывают от буферизации. Но не все. Например, для игр необходим небуферизованный доступ к элементам управления игрой.

Ваш ответ на вопрос