Java : Base64.Decoder 示例

Java 中的 Base64.Decoder (Java SE 23 & JDK 23) 及其示例。
您将找到大多数 Base64.Decoder 方法的代码示例。

注解 :

  • 本文可能使用了翻译软件以方便阅读。 另请查看英文原文

简介

此类实现了一个解码器,使用 RFC 4648 和 RFC 2045 中指定的 Base64 编码方案解码字节数据。 (机器翻译)

Class diagram

final var encoder = Base64.getEncoder();

final byte[] src = {1, 2, 3, 4, 5, 6, 7};
final var dst = encoder.encodeToString(src);

System.out.println(dst); // AQIDBAUGBw==

final var decoder = Base64.getDecoder();

final var decoded = decoder.decode(dst);
System.out.println(Arrays.toString(decoded)); // [1, 2, 3, 4, 5, 6, 7]

Methods

byte[] decode (byte[] src)

使用 Base64 编码方案解码输入字节数组中的所有字节,并将结果写入新分配的输出字节数组。 (机器翻译)

final var decoder = Base64.getDecoder();

final var src = "AQIDBAUGBw==".getBytes();
final var dst = decoder.decode(src);

System.out.println(Arrays.toString(dst)); // [1, 2, 3, 4, 5, 6, 7]

int decode (byte[] src, byte[] dst)

使用 Base64 编码方案解码输入字节数组中的所有字节,并将结果写入给定的输出字节数组,从偏移量 0 开始。 (机器翻译)

final var decoder = Base64.getDecoder();

final var src = "AQIDBAUGBw==".getBytes();
final byte[] dst = new byte[src.length]; // With a little margin.

final var size = decoder.decode(src, dst);
System.out.println(size); // 7

System.out.println(Arrays.toString(dst)); // [1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0]

byte[] decode (String src)

使用 Base64 编码方案将 Base64 编码的字符串解码为新分配的字节数组。 (机器翻译)

final var decoder = Base64.getDecoder();

final var src = "AQIDBAUGBw==";
final var dst = decoder.decode(src);

System.out.println(Arrays.toString(dst)); // [1, 2, 3, 4, 5, 6, 7]

ByteBuffer decode (ByteBuffer buffer)

使用 Base64 编码方案解码输入字节缓冲区中的所有字节,并将结果写入新分配的 ByteBuffer 中。 (机器翻译)

final var decoder = Base64.getDecoder();

final var src = "AQIDBAUGBw==".getBytes();
final var srcBuffer = ByteBuffer.wrap(src);

final var dstBuffer = decoder.decode(srcBuffer);
System.out.println(dstBuffer); // java.nio.HeapByteBuffer[pos=0 lim=7 cap=7]

final var dst = dstBuffer.array();
System.out.println(Arrays.toString(dst)); // [1, 2, 3, 4, 5, 6, 7]

InputStream wrap (InputStream is)

返回用于解码 Base64 编码的字节流的输入流。 (机器翻译)

final var path = Path.of("R:", "java-work", "sample.txt");
System.out.println(path); // R:\java-work\sample.txt

Files.writeString(path, "AQIDBAUGBw==");

final var decoder = Base64.getDecoder();

try (final var inputStream = decoder.wrap(Files.newInputStream(path))) {

    final var dst = inputStream.readAllBytes();
    System.out.println(Arrays.toString(dst)); // [1, 2, 3, 4, 5, 6, 7]
}

相关文章

To top of page