O que acontece se o valor de file.size() for realmente um long? Não vai dar algum erro bizarro caso eu esteja manipulando um arquivo muito grande, já que o java vai se perder na conversão do número para int?
O erro bizarro vai dar na hora de você tentar alocar tanta memória virtual para o CharBuffer. (Estou supondo que você está usando um computador Intel de 32 bits )
Nem tente usar esse seu código para abrir um arquivo de 2GB, por exemplo (acho que nem um arquivo de 1.7 GB você vai conseguir abrir )
KWill
Acho que poucos são tolos a ponto de quererem mapear todo o arquivo na memória, a menos que se tenha o controle de um limite para o tamanho desse arquivo.
É melhor definir um Buffer de tamanho fixo e aí ir fazendo as suas operações de I/O com ele.
Inté.
B
Bjornn_Borg
Como ficaria meu código para que se comportasse de maneira escalável e pudesse abrir arquivos maiores sem problemas?
Tb não gostaria que meu código ficasse igual ao java.io antigo… usando streams ao invés de blocks.
Se alguém puder postar um código que faz isso aí…
Valeu!
rafaelt
Bjornn Borg você parece conhecer a NIO, então se puder me responde como que eu posso fazer para enviar um arquivo para um web server com essa biblioteca??? Considerando que estou montando um Applet e máquinas clientes vão entrar nesse applet para upar arquivos no servidor web que este applet se encontra.