zkyong314 2011-10-14 17:39
浏览 714
已采纳

Java中byte[]转换成String有数据丢失现象,原byte[]长度为6714转换成String被截断成6400,请教各位高手

该问题是在HTTP通信过程中发现的,本地接收到的字符数没问题,但是在转换成String过程中出问题了。字符串发送时采用UTF-8的格式,客户端默认也是采用UTF-8,以下方法试过,不管加不加字符集限制都是一样String bString = new String(byets);
主要代码
BufferedHttpEntity bhe = new BufferedHttpEntity(httpResponse.getEntity());
BufferedInputStream bufferedInputStream = new BufferedInputStream(bhe.getContent());
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bhe.writeTo(byteArrayOutputStream);
String bString = byteArrayOutputStream.toString();

  • 写回答

1条回答 默认 最新

  • _1_1_7_ 2011-10-14 20:37
    关注

    [code="java"]BufferedHttpEntity bhe = new BufferedHttpEntity(httpResponse.getEntity());
    BufferedInputStream bufferedInputStream = new BufferedInputStream(bhe.getContent());
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    bhe.writeTo(byteArrayOutputStream);
    bhe.close()//要关闭流
    String bString = byteArrayOutputStream.toString(); [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?