Olá pessoal! Estou com problema de desempenho na leitura do meu arquivo. Ele possui aproximadamente 1.2Mb de dados, e cada caracter do arquivo é convertido para seu correspondente ascii, e depois para binário, e esse valor binário eh adicionado na String dados. Mas o desempenho está muito ruim. O programa leva muito tempo (muito tempo mesmo) para percorrer todo o arquivo. Segue o trecho importante do código:
FileInputStream arq;
DataInputStream in
String conteudo = ""; //armazena todo o conteúdo disponível no arquivo
int disponivel = 0; //armazena o número bytes do arquivo
String dados = ""; //recebe todo binários dos caracteres do arquivo
arq = new FileInputStream( "dados.txt" );
in = new DataInputStream( arq );
disponivel = in.available();
if( in.available() != 0 ) {
/* lê todo o conteúdo do arquivo, e armazena na string conteudo */
conteudo = in.readLine();
}
//armazena os binários de cada caracter na String dados
for( int cont = 0; cont < disponivel; cont++ ) {
/* converte o caracter em ascci, em seguida para binário, e armazena */
dados += Integer.toBinaryString( (int) conteudo.charAt( cont ) );
dados += "\n";
}
textArea.setText( dados );
JOptionPane.showMessageDialog( null, resultado, "Dados", JOptionPane.INFORMATION_MESSAGE );
in.close();
Se alguém tiver alguma idéia para melhorar o tempo de leitura, por favor me ajude. Obridado pessoal!