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

11

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

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

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

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

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

Ваш Ответ

5   ответов
0

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

13

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

3

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

Как насчет того, когда вы буферизуете вещи между InputStream и OutputStream (или наоборот) с помощьюbyte[]. Вы бы обернули Buffered * вокруг него? Jé Queue
Ничего не меняет. chaos
2

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

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

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

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

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

1

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

Похожие вопросы