前言
介绍一下 byte[] 和 String 相互转换的使用案例。
版本约定
- JDK 版本:1.8.0_231
- Java SE API Documentation:https://docs.oracle.com/javase/8/docs/api/
正文
byte[] 数组和 String 之间的相互转换,需要注意编码。
String 转 byte[] 数组
不设置编码,代码如下:
public static void main(String[] args) {
String str = "abcdef";
byte[] byteArray = str.getBytes();
}
没有设置编码,使用默认编码。默认编码是由 System 类的 “file.encoding” 属性决定的,不确定的通过如下代码执行一下,看看当前项目的默认编码是什么。
public static void main(String[] args) {
System.out.println(System.getProperty("file.encoding"));
}
设置编码,代码如下:
public static void main(String[] args) {
String str = "abcdef";
byte[] byteArray = str.getBytes(StandardCharsets.UTF_8);
}
推荐使用 StandardCharsets 常量,不建议直接填 “UTF-8” 字符串,因为一个是容易填错,另外你还得处理 Checked Exception。
byte[] 数组转 String
不设置编码,代码如下:
public static void main(String[] args) {
byte[] byteArray = new byte[10];
String str = new String(byteArray);
}
设置编码,代码如下:
public static void main(String[] args) {
byte[] byteArray = new byte[10];
String str = new String(byteArray, StandardCharsets.UTF_8);
}
总结
byte[] 和 String 互相转换,建议设置编码。
作者:殷建卫 链接:https://www.yuque.com/yinjianwei/vyrvkf/fari45 来源:殷建卫 - 架构笔记 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。