Java 使用org.apache.commons.codec.binary.Base64InputStream解码Base64文件

Java 使用org.apache.commons.codec.binary.Base64InputStream解码Base64文件,java,stream,base64,apache-commons,Java,Stream,Base64,Apache Commons,各位好,飞越者 我在org.apache.commons.codec.binary.Base64InputStream中遇到了一个奇怪的问题:它给了我完全相同的原始Base64编码字节流 使用的代码是: InputStream is = new BufferedInputStream( new FileInputStream( new File("/tmp/inputFile")));

各位好,飞越者

我在
org.apache.commons.codec.binary.Base64InputStream
中遇到了一个奇怪的问题:它给了我完全相同的原始Base64编码字节流

使用的代码是:

  InputStream is = new BufferedInputStream(
                        new FileInputStream(
                           new File("/tmp/inputFile")));
  try
  {
    File decodedFile = new File("/tmp/file.dec");
    OutputStream os = new BufferedOutputStream(new FileOutputStream(decodedFile));
    try
    {
      Base64InputStream b64is = new Base64InputStream(is); 
      try
      {
        byte[] buff = new byte[2048];
        int count;
        while ((count = is.read(buff)) > 0)
        {
          os.write(buff, 0, count);
        }
      } finally
      {
        b64is.close();
      }
    } finally
    {
      os.close();
    }
  }
  finally
  {
    is.close();
  }
如果
inputFile
包含Base64编码字符串(例如
0m8r4kgxgueaaaaaaaaaaaaawadap7/C
,执行此代码后,
/tmp/file.dec
包含完全相同的字符串


有人知道它为什么没有被解码吗?

你读错了流。这是

while ((count = is.read(buff)) > 0)
应该是

while ((count = b64is.read(buff)) > 0)

妈的!!!这是真的!!!非常感谢!!!我想我需要睡一觉;-)