一尘不染

在Java中编码为Base64

java

我需要使用Java中的Base64编码对一些数据进行编码。我怎么做?提供Base64编码器的类的名称是什么?

我试图使用sun.misc.BASE64Encoder该类,但没有成功。我有以下几行Java 7代码:

wr.write(new sun.misc.BASE64Encoder().encode(buf));

我正在使用Eclipse。Eclipse将此行标记为错误。我导入了所需的库:

import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;

但是同样,它们两个都显示为错误。我在这里找到了类似的帖子。

我使用Apache Commons作为建议的解决方案,包括:

import org.apache.commons.*;

并导入从http://commons.apache.org/codec/下载的JAR文件

但是问题仍然存在。Eclipse仍然显示前面提到的错误。我该怎么办?


阅读 369

收藏
2020-02-26

共1个答案

一尘不染

现在java.util.Base64,你可以使用Java8。首先,像平常一样导入它:

import java.util.Base64;

然后使用Base64静态方法,如下所示:

byte[] encodedBytes = Base64.getEncoder().encode("Test".getBytes());
System.out.println("encodedBytes " + new String(encodedBytes));
byte[] decodedBytes = Base64.getDecoder().decode(encodedBytes);
System.out.println("decodedBytes " + new String(decodedBytes));

如果你直接想要对字符串进行编码并将结果作为编码后的字符串获取,则可以使用以下方法:

String encodeBytes = Base64.getEncoder().encodeToString((userName + ":" + password).getBytes());
2020-02-26