2012-02-21 5 views
0

J'essaye de télécharger le document XML du serveur. De mon journal, je vois que je reçois un document complet; Toutefois, lorsque je convertis le document en chaîne, je n'ai que 4096 octets.Java StringBuffer

private String getString(InputStream inputStream) { 
    byte[] arrayOfByte = new byte[2048]; 
    StringBuffer sB = new StringBuffer(); 
    try { 
     while (true) 
     { 
      int i = inputStream.read(arrayOfByte); 
      if (i == -1) { 
       return sB.toString(); 
      } 
      sB.append(new String(arrayOfByte, 0, i)); 
     } 
    } catch (IOException e) { 

    } 
    return null; 
} 

Quelqu'un peut-il donner des explications sur ce que je fais mal?

+1

Je ne pense pas que ce soit votre problème ici, mais ce code n'est pas Unicode-sûr. Un seul caractère peut avoir plus d'un octet et peut se casser lorsqu'il couvre vos tampons. – Thilo

Répondre

2

Personnellement, je l'utilise toujours pour Apache Commons IO ce genre de choses:

String stuff = IOUtils.toString(inputStream, "UTF-8"); 

Cependant, votre code semble correct, donc l'erreur est probablement ailleurs.

Questions connexes