深入 JAVA里面关于byte数组和String之间的转换问题

原创 2013年12月02日 15:08:52

把byte转化成string,必须经过编码。 
  例如下面一个例子: 
  

importjava.io.UnsupportedEncodingException; 
  publicclass test{ 
  publicstatic void main(String g[]) { 
  Strings = "12345abcd"; 
  byteb[] = s.getBytes(); 
  Stringt = b.toString(); 
  System.out.println(t); 
  } 
  } 


  输出字符串的结果和字符串s不一样了. 
  经过以下方式转码就可以正确转换了: 
  
publicclass test{ 
  publicstatic void main(String g[]) { 
  Strings = "12345abcd"; 
  byteb[] = s.getBytes(); 
  try{ 
  Stringt = new String(b); 
  System.out.print(t); 
  }catch (Exception e) { 
  e.printStackTrace(); 
  } 
  } 
  } 

 Stringstr = "String"; 
  byte[]byte1 = str.getBytes(); 
  Stringstr1 = new String(byte1); 
  byte[]byte2 = str1.getBytes(); 
  Stringstr2 = new String(byte2); 
  System.out.println("str<<<"+ str); 
  System.out.println("byte1<<<"+ byte1); 
  System.out.println("str1<<<"+ str1); 
  System.out.println("byte2<<<"+ byte2); 
  System.out.println("str2<<<"+ str2); 


 
  ------------------------------------- 
  输出结果 
  str<<<String 
  byte1<<<[B@192d342 
  str1<<<String 
  byte2<<<[B@6b97fd 
  str2<<<String 
  想请教为什么两个byte输出的不一样呢? 
  Stringstr = "String"; 
  byte[]byte1 = str.getBytes(); 
  Stringstr1 = new String(byte1); 
  byte[]byte2 = str1.getBytes(); 
  ---------- 
  注意byte1是str得到的byte数组,而byte2是另一个字符串str1得到的数组 
  他们本身也是两个对象 
  直接打印实际上调用的是toString()方法,而toString()的默认实现是打印对象类型+hashCode() 
  [B表示byte数组 
  @表示之后的是地址 
  后面跟着的是hashCode,其实就是其虚拟机地址 
  所以这个结果也就是顺理成章了.

byte数组和String之间的相互转换代码

public static String converByteToString(byte[] data) { ByteArrayInputStream byteInput = null; GZ...

java中byte,String,InputStream之间的转换

import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio...

VB 字节数组和字符串的转换问题 (String<>Byte)

一、 前言     数据类型转换在编程中经常用到,VB6提供了一整套类型转换的函数。但是,在进行类型转换时,有时候仅仅依靠VB提供的函数是不能达到自己的目的的。因此,需要考虑用其他的方法来完成数...

java中byte数组与int,long,short,float,char之间的转换

Java基本类型与byte数组之间相互转换,刚刚写的,还热着 package com.my.wxf4j.utils; import java.nio.charset.Charset...

Java中字符串与byte数组之间的相互转换

Java语言中字符串类型和字节数组类型相互之间的转换经常发生,网上的分析及代码也比较多,这篇文章将主要介绍Java中字符串与byte数组之间的相互转换,有需要的朋友们可以参考借鉴,下面来一起看看吧。 ...
  • ID_Rin
  • ID_Rin
  • 2016年12月21日 19:10
  • 2995

Java中byte数组与short,int,char,long,float,double之间的转换

某些场景下我们接受和发送的数据都是byte数组,例如在socket传输中,发送、者接收的数据都是 byte数组,或者是自定义传输协议或者文件格式中,为了保证数据安全、节省流量服务端需要对数据进行先加密...
  • FX_SKY
  • FX_SKY
  • 2014年02月28日 11:20
  • 2475

java中long,int,short与byte数组之间的转换

转的两篇文章的实现都很全面里面有些细节不同,现在项目进度紧张.先保留以后整理. 文章一:http://hi.baidu.com/menglinxi_a/item/35a43d5d50e79212abf...

JAVA中int型数据和byte数组之间的相互转换

http://yk3288.blog.hexun.com/43207862_d.html  http://ilewen.com/questions/821  前不久,写了个小程序,主要是使用Jav...

Java 十六进制(Hex)与byte数组之间的转换

一、十六进制(Hex)与字节(byte)的概念 十六进制(Hex):计算机中数据的一种表示方法,它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深入 JAVA里面关于byte数组和String之间的转换问题
举报原因:
原因补充:

(最多只允许输入30个字)