Olá Galera
Quais são as vantagens em usar as classes ObjectOutputStream e RandomAccessFile para armazenar dados num arquio binario e se puder as desvantagens também.
Você já chegou a fazer uma busca no google para saber o que essas classes fazem?
Qual foi o resultado?
ObjectOutputStream:
Vantagens:
- Fácil de usar;
Desvantagens:
- Pouco controle sobre o formato do arquivo de saída (o que é péssimo para interoperabilidade);
- Dependência de implementações de terceiros;
- Muitas vezes serializa muito mais dados que o necessário (o que é péssimo para transmissões de rede);
RandomAccessFile:
Vantagens:
- Permite acesso a qualquer posição do arquivo, inclusive navegação (gravar posições, mover para frente, para trás, etc);
- Muito controle
- Não tão baixo nível quanto um OutputStream direto (implementa a interface DataInput, que tem diversos métodos de auxílio);
Eu nunca uso o ObjectInput ou ObjectOutput streams. Dificilmente vale a pena pagar por tantas desvantagens.
Desvantagens:
- Mais trabalhoso (você deve serializar campo a campo);
- Não é associável aos streams (como o BufferedInputStream). Portanto, o ideal é ler e gravar grandes volumes de dados usando os métodos que aceitam arrays como parâmetros.
Valeu