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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。