我有一个Base64编码的图像。Java中最好的解码方法是什么?希望只使用Sun Java 6中包含的库。


当前回答

特别是在通用Codec:类Base64解码(byte[]数组)或编码(byte[]数组)

其他回答

我知道现在回答有点晚了,但对于JDK 8及以上版本。

Base64.getEncoder().encodeToString("anyStringData".getBytes());
Base64.getDecoder().decode("encodedData");

进口

import java.util.Base64;

请参考此OracleDocs !

特别是在通用Codec:类Base64解码(byte[]数组)或编码(byte[]数组)

如果你喜欢基于性能的解决方案,那么你可以使用“MiGBase64”

http://migbase64.sourceforge.net/

public class Base64Test {
    public static void main(String[] args) {
    String encodeToString = Base64.encodeToString("JavaTips.net".getBytes(), true);
    System.out.println("encodeToString " + encodeToString);
    byte[] decodedBytes = Base64.decode(encodeToString.getBytes());
    System.out.println("decodedBytes " + new String(decodedBytes));
    }
}

从Java 8开始,就有了官方支持的用于Base64编码和解码的API。 随着时间的推移,这可能会成为默认的选择。

该API包括java.util类。Base64及其嵌套类。它支持三种不同的风格:基本的、URL安全的和MIME。

使用“基本”编码的示例代码:

import java.util.Base64;

byte[] bytes = "Hello, World!".getBytes("UTF-8");
String encoded = Base64.getEncoder().encodeToString(bytes);
byte[] decoded = Base64.getDecoder().decode(encoded);
String decodedStr = new String(decoded, StandardCharsets.UTF_8);

java.util的文档。Base64还包括一些配置编码器和解码器的方法,以及使用不同的类作为输入和输出(字节数组,字符串,ByteBuffers, java。io流)。

使用java8 -

    public static String encodeString(String plainString) {
        return  Base64.getEncoder().encodeToString(plainString.getBytes());
    }

    public static String decodeString(String encodedString) {
        byte[] bytes = Base64.getDecoder().decode(encodedString);
        return new String(bytes);
    }