通过Base64将String转换成byte[]或者byte[]转换成String[Java8]通过⽤例学习Java中的byte数组和String互相转换,这种转换可能在很多情况需要,⽐如IO操作,⽣成加密hash码等等。
除⾮觉得必要,否则不要将它们互相转换,他们分别代表了不同的数据,专门服务于不同的⽬的,通常String代表⽂本字符串,byte数组针对⼆进制数据
通过String类将String转换成byte[]或者byte[]转换成String
⽤Bytes()⽅法将字符串转换为byte数组,通过String构造函数将byte数组转换成String
注意:这种⽅式使⽤平台默认字符集
package ample;
public class StringByteArrayExamples
{
public static void main(String[] args)
{
//Original String
String string = "hello world";
//Convert to byte[]
byte[] bytes = Bytes();
//Convert back to String
String s = new String(bytes);
//Check converted string against original String
System.out.println("Decoded String : " + s);
}
}
可能你已经了解 Base64 是⼀种将⼆进制数据编码的⽅式,正如UTF-8和UTF-16是将⽂本数据编码的⽅式⼀样,所以如果你需要将⼆进制数据编码为⽂本数据,那么Base64可以实现这样的需求
从Java 8 开始可以使⽤Base64这个类
import java.util.Base64;
public class StringByteArrayExamples
{
public static void main(String[] args)
{
//Original byte[]
byte[] bytes = "hello world".getBytes();
//Base64 Encoded
String encoded = Encoder().encodeToString(bytes);
//Base64 Decoded
byte[] decoded = Decoder().decode(encoded);
//Verify original content
System.out.println( new String(decoded) );
}
}
总结
在byte[]和String互相转换的时候你应该注意输⼊数据的类型
当使⽤String类的时候,将String作为输⼊类型
当使⽤Base64类的时候,使⽤byte数组作为输⼊类型
>数组转换成字符串

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。