java字符串转成字节数组,Java中数组和字符串的相互转换

  java字符串转成字节数组,Java中数组和字符串的相互转换

  写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用

  【相关学习推荐:java基础教程】

  0x01 创建要转换的类和主函数

  注意这里一定要实现序列化

  包装第一天;

  导入Java。io。可序列化;

  公共类Test360实现可序列化{

  @覆盖

  公共字符串toString() {

  返回" Test360{ "

  name= name \

  };

  }

  字符串名称=测试

  }0x02 对象和字节数组互转

  包装第一天;

  导入星期日JVM。热点。公用事业。断言;

  导入Java。io。*;

  公共类arreytobytes {

  公共静态void main(String[] args)引发异常{

  测试360测试=新测试360();

  System.out.print ( java类对象转字节数组\ n’);

  byte[]buf object=getBytesFromObject(test);

  for(int I=0;ibufobject.lengthi ) {

  System.out.print(bufobject[i],);

  }

  系统。出去。println( \ n );

  System.out.print(字节数组还原对象\ n’);

  对象object1=空

  对象1=反序列化(buf对象);

  Test360 t1=(Test360)对象1;

  系统。出去。println(t1。姓名);

  }

  公共静态字节[]getBytesFromObject(可序列化对象)引发异常{

  if (obj==null) {

  返回空

  }

  ByteArrayOutputStream bo=new ByteArrayOutputStream();

  对象输出流OOS=新对象输出流(bo);

  OOS。writeobject(obj);

  返回博。tobytearray();

  }

  公共静态对象反序列化(字节[]字节){

  Object object=null

  尝试{

  bytearray inputstream bis=new bytearray inputstream(字节);//

  ObjectInputStream ois=新ObjectInputStream(bis);

  object=ois。read object();

  ois。close();

  之二。close();

  } catch (IOException ex) {

  前任。printstacktrace();

  } catch(ClassNotFoundException ex){

  前任。printstacktrace();

  }

  返回对象;

  }

  }运行结果

  java class对象转字节数组

  字节数组还原对象

  试验

  补充知识:java对象与byte[]数组之间的相互转化,压缩解压缩操作

  下面介绍一下爪哇岛对象之间和字节[]数组之间的相互转化。并对字节[]数据进行压缩操作java .对象转化为字节[]数组可用于存储中实现缓存。(这里暂不做介绍).话不多说直接开实例:

  首先我们创建一个爪哇岛对象:Person.java

  公共类人实现可序列化{

  私有字符串用户名;

  私有字符串密码;

  私弦电话;

  私人字符串电子邮件;

  私弦性;

  私弦年龄;

  公共人物(){}

  公共人物(字符串用户名,字符串密码,字符串电话,字符串电子邮件,

  字符串性别,字符串年龄){

  super();

  this .用户名=用户名;

  this.password=密码;

  这个电话=电话

  this.email=电子邮件

  性=性

  this.age=年龄;

  }

  @覆盖

  公共字符串toString() {

  退货人[用户名=用户名,密码=密码

  ,电话=电话,电子邮件=电子邮件,性别=性别

  ,age= age ];

  }

  公共字符串getUserName() {

  返回用户名;

  }

  公共void setUserName(字符串用户名){

  this .用户名=用户名;

  }

  公共字符串getPassword() {

  返回密码;

  }

  公共void setPassword(字符串密码){

  this.password=密码;

  }

  公共字符串getPhone() {

  回电话;

  }

  公共电话(字符串电话){

  这个电话=电话

  }

  公共字符串getEmail() {

  回复邮件;

  }

  公共void setEmail(字符串电子邮件){

  this.email=电子邮件

  }

  公共字符串getSex() {

  回报性;

  }

  public void setSex(String sex) {

  性=性

  }

  公共字符串getAge() {

  回归年龄;

  }

  公共空存储(字符串年龄){

  this.age=年龄;

  }

  }下面演示对人对象的转换:Object2ByteArray.java

  公共类对象2字节数组{

  公共静态void main(String[] args) {

  尝试{

  人员人员=新人(用户名,密码,电话,邮箱,性别,年龄);

  系统。出去。println( person: person );

  ByteArrayOutputStream Bos=new ByteArrayOutputStream();

  对象输出流oos=新的对象输出流(Bos);

  OOS。writeobject(人);

  //得到人对象的字节数组

  byte[]personByteArray=Bos。tobytearray();

  System.out.println(压缩前: personbytearray。长度’);

  //将字节数据压缩

  byte[]zipPersonByteArray=compress(personByteArray);

  系统。出去。println( after compress: zippersonbytearray。长度’);

  封闭流(OOS);

  封闭流(Bos);

  //从字节数组中还原人对象

  bytearray inputstream bin=new bytearray inputstream(person bytearray);

  ObjectInputStream ois=新的ObjectInputStream(bin);

  Person restore preson=(人)ois。read object();

  系统。出去。println(恢复preson);

  关闭流(ois);

  关闭流(bin);

  //从压缩的字节数组中还原人对象

  byte[]unCompress byte=unCompress(zipPersonByteArray);

  bytearrayiputstream zip bin=new bytearrayiputstream(解压缩字节);

  ObjectInputStream zipOis=new ObjectInputStream(zipBin);

  Person zipBytePerson=(Person)zipois。read object();

  系统。出去。println(压缩人: zipbyteperson。tostring());

  关闭流(齐普瓦);

  关闭流(zipBin);

  } catch(异常e) {

  e。printstacktrace();

  }

  }

  /**

  *

  * @描述关闭数据流

  * @param oStream

  *

  */

  公共静态void closeStream(可关闭的oStream){

  if(null!=oStream){

  尝试{

  牡蛎。close();

  } catch (IOException e) {

  oStream=null//赋值为空,等待垃圾回收

  e。printstacktrace();

  }

  }

  }

  /**

  *

  * @描述将字节数组压缩

  * @param bt

  * @返回

  */

  公共静态字节[]压缩(字节[] bt){

  //将字节数据读入文件流

  ByteArrayOutputStream bos=null

  GZIPOutputStream gzipos=null

  尝试{

  Bos=new ByteArrayOutputStream();

  gzipos=新的GZIPOutputStream(Bos);

  gzipos。写(Bt);

  } catch(异常e) {

  e。printstacktrace();

  }最后{

  关闭流(gzipos);

  封闭流(Bos);

  }

  返回博斯。tobytearray();

  }

  /**

  *

  * @描述解压缩字节数组

  * @param bt

  * @返回

  */

  公共静态字节[]解压缩(字节[] bt){

  //byte[]unCompress=null;

  ByteArrayOutputStream byteAos=null;

  ByteArrayInputStream byteArrayIn=null;

  GZIPInputStream gzipIn=null

  尝试{

  byteArrayIn=new ByteArrayInputStream(Bt);

  gzipIn=new GZIPInputStream(byteArrayIn);

  byteAos=new bytearray输出流();

  字节[]b=新字节[4096];

  int temp=-1;

  while((temp=gzipIn.read(b))0){

  byteAos.write(b,0,temp);

  }

  } catch(异常e) {

  e。printstacktrace();

  返回空

  }最后{

  关闭流(byteAos);

  关闭流(gzipIn);

  关闭流(byteArrayIn);

  }

  返回拜拜。tobytearray();

  }

  }上面的示例显示了:java对象到字节[]数据的转化;

  字节[]数据的压缩和解压缩操作;

  字节[]数据还原爪哇岛对象的操作;

  运行结果:

  人:人[用户名=用户名,密码=密码,电话=电话,电子邮件=电子邮件,性别=性别,年龄=年龄]

  压缩前:189

  压缩后:156

  人[用户名=用户名,密码=密码,电话=电话,电子邮件=电子邮件,性别=性别,年龄=年龄]

  压缩人:人[用户名=用户名,密码=密码,电话=电话,电子邮件=电子邮件,性别=性别,年龄=年龄]以上就是爪哇岛对象和字节数组互转过程的详细内容,更多请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: