Буферизованная потоковая цепочка Scala (или Java) - PullRequest
4 голосов
/ 16 мая 2011

Предполагая, что мне нужно записать в двоичный файл.Я могу использовать следующий код

val fos = new FileOutputStream("fileName")

, а затем использовать

fos.write(bytes)

Всегда ли хорошая идея связать его с буферизованным потоком?как в:

val fos = new FileOutputStream("FileName")
val bos = new BufferedOutputStream(fos)

Действует ли то же правило для FileInputStream?

Необходимо ли закрывать fos в конце (в цепочечной версии)?

РЕДАКТИРОВАТЬ: нашел ответ на последний вопрос.Нет необходимости закрывать внутренние потоки, как указано здесь .

1 Ответ

3 голосов
/ 16 мая 2011

Зависит от типа данных, которые вы хотите записать. BufferedStream предназначен для использования, когда вы не хотите, чтобы базовая система (та, которая выполняет фактическую запись) вызывалась для каждого записанного байта, тогда как FileOutputStream предназначена для использования, когда вы хотите записать необработанные байты, такие как при записи изображение.

...