FileBackedOutputStream сценарий использования (Guava) - PullRequest
2 голосов
/ 27 января 2011

Я наткнулся на класс FileBackedOutputStream из библиотеки Google Guava и подумал, подходит ли он для использования в качестве буфера: раз в день процесс в моем веб-приложении генерирует десятки тысяч строк (каждая из которых содержит около100 символов), которые затем загружаются в файл на FTP-сервере.Я думал об использовании объекта FileBackedOutputStream, чтобы сначала записать все эти строки, а затем дать им доступ к моему FTP-клиенту, используя FileBackedOutputStream.getSupplier().getInput(), который возвращает InputStream.Будет ли это правильный вариант использования для FileBackedOutputStream?

1 Ответ

2 голосов
/ 27 января 2011

Да, я думаю, что это будет приемлемый вариант использования для FileBackedOutputStream.Тем не менее, я думаю, FileBackedOutputStream лучше всего, когда вы используете его с данными, которые могут значительно различаться по размеру ... для небольших объемов данных, которые могут поместиться в памяти без проблем, вы хотите просто буферизировать их в памяти, но для большихобъемы данных, которые могут дать вам OutOfMemoryError, если вы попытаетесь прочитать все это в память, вы хотите переключиться на буферизацию в файл.Вот где FileBackedOutputStream действительно сияет, я думаю.Я использовал его для буферизации загруженных файлов, с которыми мне нужно сделать несколько вещей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...