我有一个Base64编码的图像。Java中最好的解码方法是什么?希望只使用Sun Java 6中包含的库。
当前回答
我知道现在回答有点晚了,但对于JDK 8及以上版本。
Base64.getEncoder().encodeToString("anyStringData".getBytes());
Base64.getDecoder().decode("encodedData");
进口
import java.util.Base64;
请参考此OracleDocs !
其他回答
这是一个迟来的回答,但是Joshua Bloch在java.util.prefs包下提交了他的Base64类(当他为Sun工作时,嗯,Oracle)。这个类从JDK 1.4开始就存在了。
E.g.
String currentString = "Hello World";
String base64String = java.util.prefs.Base64.byteArrayToBase64(currentString.getBytes("UTF-8"));
使用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);
}
从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流)。
番石榴现在内置了Base64解码。
使用BaseEncoding.base64 () .decode ()
至于处理输入使用中可能出现的空白
BaseEncoding.base64 () .decode (CharMatcher.WHITESPACE.removeFrom(…));
有关更多信息,请参阅此讨论
你可以简单地试试这个。
byte[] data = Base64.getDecoder().decode(base64fileContent);
Base64. getdecode()返回一个可以解码的Base64解码器。然后你需要再次使用.decode(<your base64>)解码。
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder
- 将JSON字符串转换为HashMap