2012-02-21 5 views
0

サーバーからXMLドキュメントをダウンロードしようとしています。私のログから、私は完全な文書を取得していることがわかります。しかし、私は文字列にドキュメントを変換するとき、私は4096バイトしか持っていません。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; 
} 

は誰もが私が間違っているのかについての任意の説明を与えることはできますか?

+1

私はあなたの問題だとは思わないが、このコードはUnicode-safeではありません。 1文字に複数のバイトを含めることができ、バッファにまたがるときに破損する可能性があります。 – Thilo

答えて

2

個人的に、私はいつものもののこの種のApache Commons IOを使用します。エラーはおそらくどこかにあるよう

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

しかし、あなたのコードは、大丈夫に見えます。