当前位置:   article > 正文

Java byte[] 和 String互相转换_java byte转string

java byte转string

通过用例学习Java中的byte数组和String互相转换,这种转换可能在很多情况需要,比如IO操作,生成加密hash码等等。

除非觉得必要,否则不要将它们互相转换,他们分别代表了不同的数据,专门服务于不同的目的,通常String代表文本字符串,byte数组针对二进制数据

通过String类将String转换成byte[]或者byte[]转换成String

用String.getBytes()方法将字符串转换为byte数组,通过String构造函数将byte数组转换成String

注意:这种方式使用平台默认字符集

  1. package com.bill.example;
  2. public class StringByteArrayExamples
  3. {
  4. public static void main(String[] args)
  5. {
  6. //Original String
  7. String string = "hello world";
  8. //Convert to byte[]
  9. byte[] bytes = string.getBytes();
  10. //Convert back to String
  11. String s = new String(bytes);
  12. //Check converted string against original String
  13. System.out.println("Decoded String : " + s);
  14. }
  15. }

输出:

  hello world

通过Base64 将String转换成byte[]或者byte[]转换成String[Java 8]

可能你已经了解 Base64 是一种将二进制数据编码的方式,正如UTF-8和UTF-16是将文本数据编码的方式一样,所以如果你需要将二进制数据编码为文本数据,那么Base64可以实现这样的需求

从Java 8 开始可以使用Base64这个类

  1. import java.util.Base64;
  2. public class StringByteArrayExamples
  3. {
  4. public static void main(String[] args)
  5. {
  6. //Original byte[]
  7. byte[] bytes = "hello world".getBytes();
  8. //Base64 Encoded
  9. String encoded = Base64.getEncoder().encodeToString(bytes);
  10. //Base64 Decoded
  11. byte[] decoded = Base64.getDecoder().decode(encoded);
  12. //Verify original content
  13. System.out.println( new String(decoded) );
  14. }
  15. }

输出:

  hello world

总结

在byte[]和String互相转换的时候你应该注意输入数据的类型

  1. 当使用String类的时候,将String作为输入类型

  2. 当使用Base64类的时候,使用byte数组作为输入类型

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/算法设计者/article/detail/61435
推荐阅读
相关标签
  

闽ICP备14008679号