在JDK7中使用Base64类

时间:2015-12-26 07:43:19

标签: java

我正在尝试在jdk7中使用Base64类,但我收到Base64 cannot be resolved错误。为什么eclipse会抛出这个错误?

我正在使用以下代码

byte[] imageData = Base64.getDecoder().decode(readFile(imagePart.getInputStream()));

甚至import语句也显示相同的错误:import java.util.Base64;

这个类在jdk7中不可用吗?

5 个答案:

答案 0 :(得分:8)

来自documentation

  

自:       1.8

所以不,它在jdk 7中不可用。

答案 1 :(得分:4)

Base64.getDecoder()。decode()可从1.8

获得

尝试使用 Google Guava

<强> POM

<dependency>
   <artifactId>guava</artifactId>
   <groupId>com.google.guava</groupId>
   <type>jar</type>
   <version>14.0.1</version>
</dependency>

代码段

String inputContent = "Hello World";
String base64String = BaseEncoding.base64().encode(inputContent.getBytes("UTF-8"));
//decode
System.out.println("Base64:" + base64String);
byte[] contentInBytes = BaseEncoding.base64().decode(base64String);
System.out.println("Source content: " + new String(contentInBytes, "UTF-8"));//Hello World

答案 2 :(得分:2)

如果需要专门为项目使用JDK7,并且仍需要使用 java.util.Base64 类,则可以在项目中包含OpenJDK中该类的代码。 / p>

本课程的资料来源于:
http://www.grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/util/Base64.java?av=f

Base64.java 文件可以在以下位置下载:
http://www.grepcode.com/file_/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/util/Base64.java/?v=source&disposition=attachment

答案 3 :(得分:0)

java.util.Base64在Java 8或更高版本中可用

在Java 7中,您可以使用Apache Commons Codec

请参阅此处查看示例http://www.rgagnon.com/javadetails/java-0598.html

答案 4 :(得分:0)

如上所述,java.util.Base64直到8月才可用。

但是,我发现值得注意的是,Android开发人员可以使用语言级别7(API 24)访问android.util.Base64,并且code完全是自包含的,因此您可以将其复制并拖放到项目中您需要Base64,并且不想使用Apache之类的第三方。只需注意权利和用法以及所有这些内容即可。