Lendo arquivo de texto em J2ME

votos
3

Eu estou tentando ler um recurso (asdf.txt), mas se o arquivo é maior do que 5000 bytes, (por exemplo) 4700 peças de nulo caracteres inseridos ao final da variável conteúdo. Existe alguma maneira de removê-los? (Ou para definir o tamanho direito do buffer?)

Aqui está o código:

String content = ;
try {
    InputStream in = this.getClass().getResourceAsStream(asdf.txt);
    byte[] buffer = new byte[5000];
    while (in.read(buffer) != -1) {
        content += new String(buffer);
    }
} catch (Exception e) {
    e.printStackTrace();
}
Publicado 11/04/2009 em 08:38
fonte usuário
Em outras línguas...                            


1 respostas

votos
7

A maneira mais simples é fazer a coisa certa: Use uma Reader para ler dados de texto:

String content = "";
Reader in = new InputStreamReader(this.getClass().getResourceAsStream("asdf.txt"), THE_ENCODING);
StringBuffer temp = new StringBuffer(1024);
char[] buffer = new char[1024];
int read;
while ((read=in.read(buffer, 0, buffer.len)) != -1) {
  temp.append(buffer, 0, read);
}
content = temp.toString().

Não que você definitivamente deve definir a codificação do arquivo de texto que você deseja ler. No exemplo acima que seriam THE_ENCODING.

E note que tanto o seu código e este exemplo código de trabalho igualmente bem em Java SE e J2ME.

Respondeu 11/04/2009 em 09:15
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more