Записать ByteArrayOutputStream в FileOutputStream против Записать ByteArray в FileOutputStream? - PullRequest
0 голосов
/ 16 апреля 2019

Какой из следующих подходов более эффективен с точки зрения использования и производительности памяти:

  1. Запись ByteArrayOutputStream в FileOutputStream, т. Е. baos.writeTo(output); или
  2. Преобразование ByteArrayOutputStream to ByteArray и затем запись в FileOutputStream т.е. output.write(baos.toByteArray());

Я проанализировал и обнаружил, что 2-й подход требует больше памяти при записи в файл, так как baos.toByteArray() создает недавно выделенныйByte массив.

Пожалуйста, предложите.Как вы думаете, есть ли польза от использования output.write(baos.toByteArray())?

FileOutputStream output = new FileOutputStream(path);
ByteArrayOutputStream baos = getBaos(); 
baos.writeTo(output);
//output.write(baos.toByteArray());

1 Ответ

0 голосов
/ 16 апреля 2019

writeTo записывает напрямую свой внутренний буфер в OUT (т.е. FileOutputStream), в то время как запись (bao.toByteArray ()) занимает больше времени, чем writeTo, если вы правильно проанализировали.

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