Dessa maneira ele traz os caracteres multiplos de 128. Precisava ler a quantidade certa de caracteres deste arquivo usando uma maneira rápida para fazer isto.
Alguém sabe qual seria o melhor jeito ?
Obrigado
Se você tem um arquivo .txt, provavelmente ele é dividido em linhas.
Para ler uma linha de um arquivo txt, use readLine. Por exemplo:
importjava.io.*;classLerArquivoTexto{publicvoidler()throwsIOException{InputStreamis=getClass().getResourceAsStream("texto.txt");BufferedReaderbr=newBufferedReader(newInputStreamReader(is));Stringlinha;while((linha=br.readLine())!=null){System.out.println(linha);}br.close();// br.close já fecha "is" automaticamente}publicstaticvoidmain(String[]args)throwsIOException{LerArquivoTextolat=newLerArquivoTexto();lat.ler();}}
C
cubas
No caso, preciso ler uma quantidade de caracteres deste arquivo txt. No exemplo coloquei os primeiros 100 caracteres.
Qual seria a forma para se fazer isto sem degradar muito a performance.
Valeu
T
thingol
caracteres+=newString(b);
O que lhe degrada (e muito) a performance é a concatenação de strings. Isso é um dos pontos fracos do Java (e do C#, seu parente próximo).
Se quer ler exatamente 100 caracteres (não bytes - um byte e um caracter são bichos diferentes em Java), defina um array de 100 caracteres, em vez de usar um InputStream use um Reader, e use o método “read (char [])” da interface Reader.
C
cubas
Fiz a sua sugestão.
Por favor, veja se era por este caminho.
Hum, o que você escreveu quase funciona - o que ocorre quando o seu arquivo tem menos de 300 caracteres? Você vai ter uma String que contém o texto original, e além disso a quantidade de caracteres ‘\0’ que falta para completar 300.
Dê uma olhada se existe algum construtor de String que aceite entrar com a quantidade de caracteres lidos.