Pacote java.nio, quando deve ser utilizado e quais as vantagens?

3 respostas
H

Olá,

estava pesquisando sobre cópia de arquivos e acabei deparando-me com um artigo sobre o java.nio, fiz alguns testes e no meu caso (cópia de grandes arquivos de texto) este mostrou-se bem eficiente (praticamente metade do tempo que um método que utiliza o java.io).

Este foi o primeiro contato com o NIO, e isto me intrigou, pois este existe desde a versão 1.4, mas quando você pesquisa sobre manipulação de arquivos e I/O em geral, as respostas sempre utilizam o java.io, dando a impressão de que o NIO é um pacote depreciado ou de utilização extremamente específica.

Enfim, gostaria, se possível, que alguém mais experiente explicasse as situações em que o NIO deveria ser utilizado, quais as principais vantagens, o por que de ser pouco comentado nos fóruns e tutoriais e quaisquer outras informações úteis como artigos sobre NIO, ect…

Um abraço e desde já agradeço.

Henrique Nunes Bez Fontana

3 Respostas

T

Hum - onde é que você viu que o java.nio está depreciado (“deprecated”)? Que eu saiba, a cada versão nova do Java eles acrescentam mais capacidades.
É que muitas vezes se usa NIO sem necessidade (no seu caso de arquivos-texto, se você precisa ler um arquivo texto por linhas (não só fazer uma cópia ou concatenação de arquivos), é mais simples usar um BufferedReader.
Usar NIO é a meu ver uma otimização - por exemplo, se você precisa acelerar o processamento de sockets, você pode combiná-los com NIO. Mas se você só precisa de algo pronto rapidamente, o java.io já é suficiente.

Luca

Olá

Veja a palestra IO melhorado com java.nio que fiz no ConexãoJava 2005

No fim tem umas comparações de desempenho e você vai concluir que só usa o antigo java.io quem gosta de fazer as coisa bem devagarzinho.

[]s
Luca

H

Eu quis dizer que dá a impressão de que é um pacote depreciado, antigo. Editei o texto para evitar duplas interpretações.

Imaginei que esse fosse mesmo um motivo, a simplicidade em utilizar o I/O devido à alta abstração. Mas no meu caso o NIO se mostrou mais rápido, e em sistemas de grande porte uma diferença de 1 segundo é crucial =)
Obrigado thingol

Veja a palestra IO melhorado com java.nio que fiz no ConexãoJava 2005
No fim tem umas comparações de desempenho e você vai concluir que só usa o antigo java.io quem gosta de fazer as coisa bem devagarzinho.

Muito obrigado Luca, era exatamente o que eu precisava, vc usa com uma certa frequencia o NIO?

Obrigado e, por favor, continuem a colaborar com o assunto =)

Criado 27 de março de 2008
Ultima resposta 27 de mar. de 2008
Respostas 3
Participantes 3