Cara, não conheço a biblioteca, mas duvido MUITO que não tenha um método que processe Streams. Vc nao precisa converter pra uma baita String em memória pra isso. Olhei basicamente no site e tem um exemplo que usa File
Certamente tem outra forma que usa um Stream diretamente. Ou na pior das hipoteses salva o arquivo em disco e processa usando File. Não há a menor necessidade de carregar a String toda em memória, ainda por cima lendo linha a linha!
-- Serializer serializer = new Persister(); File source = new File("example.xml"); Example example = serializer.read(Example.class, source);
Certamente tem outra forma que usa um Stream diretamente. Ou na pior das hipoteses salva o arquivo em disco e processa usando File. Não há a menor necessidade de carregar a String toda em memória, ainda por cima lendo linha a linha!
Em quinta-feira, 29 de agosto de 2013 17h39min17s UTC-3, daniel.capelassi escreveu:
Pessoal, eu baixo atravéz do meu app arquivo xml da internet de 3 mb. Depois pego o stream que baixei e tento converter ele para string, assim posso manipular o xml.O problema é que no meu celular Nexus ele consegue passar o stream para string.Já no meu celular antigo, LG p500 ele da erro "out of memory."Será que a memória é tão limitada assim que não consigo carregar 3 mb na memória ou estou fazendo alguma coisa errada?
Já tentei vários códigos para converter a inputStream baixada para string. Segue um exemplo que estou usando atualmente.InputStream is = ... stream baixado
BufferedReader reader = new BufferedReader(new InputStreamReader(is), 8192);
String line;
StringBuilder results = new StringBuilder("");while( ( line = reader.readLine() ) != null){
results.append(line);
}reader.close();
return results.toString();
Ele sempre da o erro no results.append(line); após processar um pouco.Estou fazendo o processo em uma asyncTask.Fiz um app separado só para baixar e passar por esta funcao, para assegurar que mais nadaestá ocupando a memória no app.Alguem pode me ajudar? Vlw.-----------------------------------
Att. Daniel N. Capelassi
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
0 comentários:
Postar um comentário