Java8 - Base64

本文详细介绍Java8中Base64编码和解码的三种方式:Simple、URL和MIME,包括如何使用Base64.Decoder和Base64.Encoder类进行操作,并提供示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java 8中终于加入了最Base64的支持,有三种使用方式:

  • Simple - 限定字符集A-Za-z0-9+/,否则decoder会报错。
  • URL - 限定字符集A-Za-z0-9+_
  • MIME - 输出MIME类型(Multipurpose Internet Mail Extensions),每行不超过76个字符,使用换行符\r,行分隔符\n,结尾没有行分隔符。
  • static class Base64.Decoder - 用于decode,遵循RFC 4648 和 RFC 2045。
  • static class Base64.Encoder - 用于encode,遵循RFC 4648 和 RFC 2045。
方法
  • static Base64.Decoder getDecoder()
    返回一个Base64.Decoder,使用Simple方式decode。

  • static Base64.Encoder getEncoder()
    返回一个Base64.Encoder,使用Simple方式encode。

  • static Base64.Decoder getMimeDecoder()
    返回一个Base64.Decoder,使用MIME方式decode。

  • static Base64.Encoder getMimeEncoder()
    返回一个Base64.Encoder,使用MIME方式encode。

  • static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator)
    返回一个Base64.Encoder,使用MIME方式encode,可以指定line length和line separator。

  • static Base64.Decoder getUrlDecoder()
    返回一个Base64.Decoder,使用URL方式decode。

  • static Base64.Encoder getUrlEncoder()
    返回一个Base64.Encoder,使用URL方式encode。

示例:
mport java.util.Base64;
import java.util.UUID;
import java.io.UnsupportedEncodingException;

public class HelloWorld {

   public static void main(String args[]) {

      try {
		
         // Encode using basic encoder
         String base64encodedString = Base64.getEncoder().encodeToString(
            "TutorialsPoint?java8".getBytes("utf-8"));
         System.out.println("Base64 Encoded String (Basic) :" + base64encodedString);
		
         // Decode
         byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
		
         System.out.println("Original String: " + new String(base64decodedBytes, "utf-8"));
         base64encodedString = Base64.getUrlEncoder().encodeToString(
            "TutorialsPoint?java8".getBytes("utf-8"));
         System.out.println("Base64 Encoded String (URL) :" + base64encodedString);
		
         StringBuilder stringBuilder = new StringBuilder();
		
         for (int i = 0; i < 10; ++i) {
            stringBuilder.append(UUID.randomUUID().toString());
         }
		
         byte[] mimeBytes = stringBuilder.toString().getBytes("utf-8");
         String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes);
         System.out.println("Base64 Encoded String (MIME) :" + mimeEncodedString);

      } catch(UnsupportedEncodingException e) {
         System.out.println("Error :" + e.getMessage());
      }
   }
}

执行结果:

Base64 Encoded String (Basic) :VHV0b3JpYWxzUG9pbnQ/amF2YTg=
Original String: TutorialsPoint?java8
Base64 Encoded String (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg=
Base64 Encoded String (MIME) :YmU3NWY2ODktNGM5YS00ODlmLWI2MTUtZTVkOTk2YzQ1Njk1Y2EwZTg2OTEtMmRiZC00YTQ1LWJl
NTctMTI1MWUwMTk0ZWQyNDE0NDAwYjgtYTYxOS00NDY5LTllYTctNjc1YzE3YWJhZTk1MTQ2MDQz
NDItOTAyOC00ZWI0LThlOTYtZWU5YzcwNWQyYzVhMTQxMWRjYTMtY2MwNi00MzU0LTg0MTgtNGQ1
MDkwYjdiMzg2ZTY0OWU5MmUtZmNkYS00YWEwLTg0MjQtYThiOTQxNDQ2YzhhNTVhYWExZjItNjU2
Mi00YmM4LTk2ZGYtMDE4YmY5ZDZhMjkwMzM3MWUzNDMtMmQ3MS00MDczLWI0Y2UtMTQxODE0MGU5
YjdmYTVlODUxYzItN2NmOS00N2UyLWIyODQtMThlMWVkYTY4M2Q1YjE3YTMyYmItZjllMS00MTFk
LWJiM2UtM2JhYzUxYzI5OWI4

原文来自:https://www.tutorialspoint.com/java8/java8_base64.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值