如何在Java 7中使用Base64编码和解码

在Java 7中苦于Base64编码和解码?别担心。我们使用Apache Commons Codec的详细指南将帮助您解决问题!
On this page

如何在Java 7中使用Base64编码和解码

Excerpt

在 Java 7 中苦于 Base64 编码和解码?别担心。我们使用 Apache Commons Codec 的详细指南将帮助您解决问题!

简介

尽管 Java 8 引入了java.util.Base64类来执行这些操作,但仍然有许多项目依赖于 Java 7。

Apache Commons Codec 提供了一个易于在 Java 7 中使用的 Base64 类。Apache Commons Codec 是一个实用的 Java 库,用于处理编码,例如 Base64 和十六进制。它提供了一个简单的 API 来编码和解码各种格式的数据,包括 Base64。

该库在工业界广泛使用,由著名的开源组织 Apache 孵化了十多年,使其成为开发人员的绝佳选择。在本文中,我们将逐步介绍如何使用 Apache Commons Codec Base64 在 Java 7 中执行 Base64 编码和解码。

在 Java 7 中进行 Base64 编码

以下是使用 Apache Commons Codec 进行 Base64 编码的逐步教程。

导入 Apache Commons Codec 库

第一步是将 Apache Commons Codec 库导入您的项目中。您可以从官方网站下载库的最新版本。下载了库之后,解压缩并将 commons-codec-1.x.jar 添加到项目的类路径中。

使用 Maven 导入 Apache Commons Codec

您还可以使用 Maven 导入 Apache Commons Codec 库。在项目的 pom.xml 文件中,添加以下依赖项:

1<dependency>
2  <groupId>commons-codec</groupId>
3  <artifactId>commons-codec</artifactId>
4  <version>1.15</version>
5</dependency>

使用 Base64 类对字符串进行编码

 1import org.apache.commons.codec.binary.Base64;
 2
 3public class Base64EncodingExample {
 4	public static void main(String[] args) {
 5		String originalString = "Hello World!";
 6		byte[] encodedBytes = Base64.encodeBase64(originalString.getBytes());
 7		String encodedString = new String(encodedBytes);
 8		System.out.println("Encoded string: " + encodedString);
 9	}
10}

在这个例子中,我们首先创建一个要编码的字符串。然后将该字符串转换为字节数组,并将其传递给 Apache Commons Codec 提供的Base64.encodeBase64()方法。该方法返回一个包含已编码数据的字节数组。最后,我们从该字节数组创建一个新的字符串并将其打印出来。

使用 Base64 类对二进制数据进行编码

您也可以使用Base64.encodeBase64()方法来编码二进制数据,例如图像或音频文件。以下是一个示例:

 1import java.io.File;
 2import java.io.FileInputStream;
 3import java.io.IOException;
 4import org.apache.commons.codec.binary.Base64;
 5
 6public class BinaryDataEncodingExample {
 7    public static void main(String[] args) throws IOException {
 8        File file = new File("image.png");
 9        FileInputStream inputStream = new FileInputStream(file);
10        byte[] bytes = new byte[(int) file.length()];
11        inputStream.read(bytes);
12
13        byte[] encodedBytes = Base64.encodeBase64(bytes);
14        String encodedString = new String(encodedBytes);
15
16        System.out.println("Encoded string: " + encodedString);
17    }
18}

在这个例子中,我们将一个图像文件读取为一个二进制流并将其内容存储在一个字节数组中。然后,我们将这个字节数组传递给 Apache Commons Codec 提供的Base64.encodeBase64()方法,以得到一个包含我们二进制数据的编码字节数组,其格式为 base-64 编码格式。

提供的免费 Base64 编码验证工具如下:

Java 7 中的 Base64 解码

Base64 解码是将 Base64 编码数据转换回其原始形式的过程。在 Java 8 中,可以使用 java.util.Base64 类来实现此目的。然而,对于使用 Java 7 或更低版本的用户,没有内置支持 Base64 解码的功能。

逐步指南

要在 Java 7 中执行 Base64 解码,我们将使用 Apache Commons Codec 库。遵循以下步骤开始:

导入 Apache Commons Codec 库

首先,我们需要下载并导入 Apache Commons Codec 库到我们的项目中。您可以从官方网站下载并将其添加到项目的类路径中。

使用 Maven 导入 Apache Commons Codec

或者,您可以使用 Maven 导入 Apache Commons Codec 库。在您的项目的 pom.xml 文件中,添加以下依赖项:

1<dependency>
2  <groupId>commons-codec</groupId>
3  <artifactId>commons-codec</artifactId>
4  <version>1.15</version>
5</dependency>

使用 Base64 类解码字符串

要在 Java 7 中解码 Base64 编码的字符串,我们将使用 Apache Commons Codec 库中的org.apache.commons.codec.binary.Base64类。以下是一个示例代码片段:

 1import org.apache.commons.codec.binary.Base64;
 2
 3public class Base64Decoder {
 4    public static void main(String[] args) {
 5        String encodedString = "SGVsbG8gV29ybGQh";
 6
 7        byte[] decodedBytes = Base64.[decodeBase64](https: //documentation.xojo.com/api/text/encoding_text/decodebase64.html)(encodedString);
 8            String decodedString = new String(decodedBytes);
 9
10            System.out.println("Decoded string: " + decodedString);
11        }
12    }

在这个例子中,我们有一个 Base64 编码的字符串SGVsbG8gV29ybGQh,解码后转换为Hello World!。我们首先使用Base64.decodeBase64()方法解码字符串,该方法返回一个字节数组。然后,我们使用new String()构造函数将这个字节数组转换回字符串。

使用 Base64 类解码二进制数据

除了字符串之外,我们还可以使用 Java 7 中的org.apache.commons.codec.binary.Base64类解码二进制数据,如图像或音频文件。以下是一个示例代码片段:

 1import org.apache.commons.codec.binary.Base64;
 2import java.io.FileOutputStream;
 3import java.io.IOException;
 4
 5public class BinaryDataDecoder {
 6    public static void main(String[] args) throws IOException {
 7        String encodedData = "/9j/4AAQSkZJRgABAQEASABIAAD...";
 8
 9        byte[] decodedBytes = Base64.decodeBase64(encodedData);
10
11        FileOutputStream fos = new FileOutputStream("image.jpg");
12        fos.write(decodedBytes);
13        fos.close();
14    }
15}

在这个例子中,我们有一个 Base64 编码的图像数据存储在一个字符串变量encodedData中。我们首先使用Base64.decodeBase64()方法将这些数据解码为一个字节数组。然后,我们将这个字节数组写入一个输出文件流,它将其保存为图像文件"image.jpg"。

通过这些步骤,您可以使用 Apache Commons Codec 库在 Java 7 中轻松执行 Base64 解码。

提供的免费 Base64 解码验证工具如下: