Java - 方法encodeBase64

时间:2015-04-27 04:44:08

标签: java encoding base64

我有一个字符串String x = "Sample text";,我想打印它的base64加密。正如许多例子所述,我使用:

byte[] encodedBytes = Base64.encodeBase64(x.getBytes());
System.out.println("encodedBytes " + new String(encodedBytes));

但这给了我The method encodeBase64(byte[]) is undefined for the type Base64 ......为什么会这样?

4 个答案:

答案 0 :(得分:7)

encode方法位于Base64.Encoder课程中,您可以通过Base64.getEncoder()运行。

byte[] encodedBytes = Base64.getEncoder().encode(x.getBytes());

同样,解码:

String originalString = new String(Base64.getDecoder().decode(encodedBytes));

查看the Base64 javadocs了解详情。

答案 1 :(得分:1)

代替重写代码,您应该仅将Apache commons编解码器模块包含到类路径中。它具有确切的方法签名Base64.encodeBase64(byte[])。是的,只要在互联网搜索中点击“ encodeBase64”就足够了。

请注意,您的项目可能会使用同一编解码器包中的其他功能。因此,在开始替换代码之前,应始终先尝试找到项目所使用的模块/库。有时实现之间会有细微的差异,这可能会使项目在适当的情况下失败。

也就是说,问题中的代码当然没有意义。您可以使用encodeBase64String直接转换为String,而不必转换为字节然后转换为String。如the other answer中所述,对于较新级别的API,确实存在java.util.Base64类。最后-更重要的是-如果x已经包含一个字符串,为什么要以64位编码呢?

答案 2 :(得分:0)

我有点解决了,但是检查它是否有效

decode.setText(新字符串(Base64.decode(inputText.getText()。toString(),Base64.DEFAULT))))

告诉我如果它不起作用

答案 3 :(得分:-1)

你也可以使用:

byte[] originalString = Base64.getDecoder().decode(encodedBytes);

解码(这是我在最近写的Base64编码器/解码器applet中使用的)