文
章
目
录
章
目
录
通过示例学习在 Java 中将byte[] 数组转换为 String以及将 String 转换为 byte[] 数组。字节数组和字符串之间的转换可用于许多情况,包括 IO 操作、生成安全哈希等。
除非绝对必要,否则不要在字符串和字节数组之间进行转换。它们都代表不同的数据;它们有特定的用途,即字符串用于文本,byte[]用于二进制数据。
1.byte[]转String
1.1. 使用字符串构造函数
要将字节数组转换为String
,您可以使用String
类构造函数byte[]
作为构造函数参数。
byte[] bytes = "hello world".getBytes();
String s = new String(bytes);
1.2. 使用Base64
从 Java 8 开始,我们提供了Base64类。您可能知道,Base64是一种编码二进制数据的方法,而 UTF-8 和 UTF-16 是编码 Unicode 文本数据的方法。因此,如果您需要将任意二进制数据编码为文本,Base64 是最佳选择。
byte[] bytes = "hello world".getBytes();
String s = Base64.getEncoder().encodeToString(bytes);
2.String转byte[]
2.1. 使用String.getBytes()
要将字符串转换为字节数组,请使用String.getBytes()方法。请注意,此方法使用平台的默认字符集。
2.2. 使用Base64
Base64.getDecoder ().decode()方法将字符串转换为字节数组。
String string = "www.panziye.com";
byte[] bytes = Base64.getDecoder().decode(string);
三、总结
Java中byte[]数组和String之间转换时,我们应该关注输入数据类型。
- 当您在字符串或文本内容中输入数据时,请使用 String 类。
- 当您在字节数组中输入数据时,请使用 Base64 类。