2012-02-21 51 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安全的。单个字符可以有多个字节,并且在跨越缓冲区时可能会中断。 – Thilo 2012-02-21 03:26:12

回答

2

就个人而言,我总是用Apache Commons IO对于这种东西:

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

然而,你的代码看起来不错,所以错误可能是其他地方。