Usar file streams ou memory streams? [RESOLVIDO]

1 resposta
Y

Desenvolvi duas lógicas para um aplicativo de backup. Agora estou em dúvida sobre qual é mais própícia.

[file input streams diretos] A primeira consiste em abrir um stream de um arquivo zip e, a cada chamada de método, um novo arquivo é aberto, lido, e seus bytes são enviados para o zip. Desta forma, o zip fica aberto durante todo o processo de backup. Ou seja, o fluxo de dados é contínuo, da seguinte forma:

[memory streams] A outra maneira que fiz foi armazenando os bytes dos arquivos em um ArryList, e posteriormente abrindo o zip e enviando os arquivos de uma só vez com várias chamadas ao putNextEntry(). O que ocorre é que desta forma há uma utilização bem maior de memória, uma vez que os arquivos ficam "inteiramente" armazenados na memória.

O que vocês acham que é mais viável? Manter um stream zip aberto e ir criando, lendo e destruindo streams de arquivos´para serem copiados ao zip ou armazenar os arquivos primeiramente na memória e gerar o zip depois?

1 Resposta

Y

Conversando com Sami Koivu, acabei optando por manter os streams abertos simultaneamente, isso evitará um OutOfMemoryError.

Criado 7 de abril de 2007
Ultima resposta 8 de abr. de 2007
Respostas 1
Participantes 1