【发布时间】:2010-09-06 10:52:56
【问题描述】:
我在一个文件中有二进制数据,我可以将其读入字节数组并毫无问题地处理。现在我需要通过网络连接将部分数据作为 XML 文档中的元素发送。我的问题是,当我将数据从字节数组转换为字符串并转换回字节数组时,数据已损坏。我已经在一台机器上对此进行了测试,以将问题与字符串转换隔离开来,所以我现在知道它没有被 XML 解析器或网络传输损坏。
我现在得到的是
byte[] buffer = ...; // read from file
// a few lines that prove I can process the data successfully
String element = new String(buffer);
byte[] newBuffer = element.getBytes();
// a few lines that try to process newBuffer and fail because it is not the same data anymore
有谁知道如何在不丢失数据的情况下将二进制转换为字符串并返回?
回答:谢谢山姆。我觉得自己像个白痴。我昨天回答了这个问题,因为我的 SAX 解析器在抱怨。出于某种原因,当我遇到这个看似独立的问题时,我并没有想到这是同一问题的新症状。
编辑:为了完整起见,我使用了 Apache Commons Codec 包中的 Base64 类来解决这个问题。
【问题讨论】:
标签: java serialization