Java 无法从由teArrayDataSource编码的Base64中获取字符串

Java 无法从由teArrayDataSource编码的Base64中获取字符串,java,base64,bytearray,inputstream,datahandler,Java,Base64,Bytearray,Inputstream,Datahandler,我使用org.apache.axis2.databinding.utils.ConverterUtil将一个字符串转换为Base64Binary(DataHandler中的ByteArrayDataSource) 当我尝试将其转换回字符串时,它不起作用。我不明白为什么。我错过了什么 代码如下: @Test public void testBase64() { DataHandler test = ConverterUtil.convertToBase64Binary("TEST");

我使用org.apache.axis2.databinding.utils.ConverterUtil将一个字符串转换为Base64Binary(DataHandler中的ByteArrayDataSource)

当我尝试将其转换回字符串时,它不起作用。我不明白为什么。我错过了什么

代码如下:

@Test
  public void testBase64() {
    DataHandler test = ConverterUtil.convertToBase64Binary("TEST");
    try {
      BufferedReader br = new BufferedReader(new InputStreamReader(test.getDataSource().getInputStream()));
      StringBuilder sb = new StringBuilder();
      String line;

      while ((line = br.readLine()) != null) {
        sb.append(line);
      }
      br.close();

      String result = new String(Base64.decode(sb.toString()));

    } catch (IOException e) {
      e.printStackTrace();
    }
如你所见。。结果字符串为空。。 我希望有人能帮我


谢谢

Base64将二进制字节转换为可读字符串,反之亦然。您正在尝试将base64编码的字符串解码为字符串。那没有多大意义。它应该是
byte[]bytes=Base64.decode(sb.toString())
我真的不明白。。那么我如何从中得到一个包含值“TEST”的字符串呢?哦,我错过了编码字符串的部分。忘了我说的吧。我看过ConverterUtil.convertToBase64Binary()的javadoc,但它没有。所以我甚至不知道它是干什么的。对不起,没问题。。我刚发现我在找什么。。问题是convertToBase64Binary()方法在其中执行Base64.decode(“字符串”)操作!所以我必须先对字符串的字节版本进行编码,然后再将其解码回来。。那是愚蠢的,但它起作用了。。无论如何谢谢你