javabytebyte转换
㈠ java 中各种数据类型转换byte[]的方法
ObjectOutputStream oos = null;//对象输出流
ByteArrayOutputStream baos = null;//byte数组输出流
ByteArrayInputStream s = null;//对象输入流
try {
//序列化
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);//将数组流传入对象流
oos.writeObject(new Integer(1));//用对象流读取对象。
byte[] bytes = baos.toByteArray();//用数组流将传入的对象转化为byte数组
//反序列化
s = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(s);
Integer i = (Integer)ois.readObject();
System.out.println(i);
} catch (Exception e) {
}以上是把integer类型转化成byte[]数组类型。注:基本类型要转化为byte[]数组的话,需要用该基本类型的引用类。比如int的引用类是integer,就行了所有的类型,包括class都可以用这种序列化方式来转成byte[],
㈡ java byte[]转byte
你这个需求通过程序是可以实现的,但是会有问题。再说了,前面的0也显示不出来,最主要的是可能会溢出。
㈢ java中如何将byte[]里面的数据转换成十六进制
方法如下:
/* *
* Convert byte[] to hex string.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)
*来转换成16进制字符串。
* @param src byte[] data
* @return hex string
*/
public static String bytesToHexString(byte[] src){
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
此方法能将byte[]转化成16进制字符串,
㈣ java中int如何转换byte
BYTE B=(byte)(0XFF & int 数据);
如果数据比较大用左右移来 转就可以了
㈤ java里面byte数组和String字符串怎么转换
Java中byte数组转换成string字符串可以直接使用string类的构造函数。而string转byte数组,则可以使用string类型的getBytes()方法进行转换,如下形式:
1、string 转 byte[]
String str = "Hello";//声明一个字符串
byte[] srtbyte = str.getBytes();//使用string类的getBytes方法进行转换
2、byte[] 转 string
byte[] srtbyte;//声明一个byte字节数组
String res = new String(srtbyte);//使用构造函数转换成字符串
System.out.println(res);
也可以将byte转换的时候,设定编码方式相互转换,如下代码:
String str = "hello";
byte[] srtbyte = null;
try {
srtbyte = str.getBytes("UTF-8");//设定转换的编码格式
String res = new String(srtbyte,"UTF-8");
System.out.println(res);
} catch (UnsupportedEncodingException e) {//有可能会出现不能支持的编码格式,捕捉异常。
e.printStackTrace();
}
㈥ java中byte怎样转换成byte
public class ByteUtil { /** * 将 Little-Endian 的字节数组转为 int 类型的数据 * Little-Endian 表示高位字节在高位索引中 * @param bys 字节数组 * @param start 需要转换的开始索引位数 * @param len 需要转换的字节数量 * @return 指定开始位置和长度以 LE 方式表示的 int 数值 */ public static int bytes2IntLE(byte[] bys, int start, int len) { return bytes2Int(bys, start, len, false); } public static int bytes2IntLE(byte[] bys) { return bytes2Int(bys, 0, bys.length, false); } /** * 将 Big-Endian 的字节数组转为 int 类型的数据 * Big-Endian 表示高位字节在低位索引中 * @param bys 字节数组 * @param start 需要转换的开始索引位数 * @param len 需要转换的字节数量 * @return 指定开始位置和长度以 BE 方式表示的 int 数值 */ public static int bytes2IntBE(byte[] bys, int start, int len) { return bytes2Int(bys, start, len, true); } public static int bytes2IntBE(byte[] bys) { return bytes2Int(bys, 0, bys.length, true); } /** * 将字节数组转为 Java 中的 int 数值 * @param bys 字节数组 * @param start 需要转换的起始索引点 * @param len 需要转换的字节长度 * @param isBigEndian 是否是 BE(true -- BE 序,false -- LE 序) * @return */ private static int bytes2Int(byte[] bys, int start, int len, boolean isBigEndian) { int n = 0; for(int i = start, k = start + len % (Integer.SIZE / Byte.SIZE + 1); i < k; i++) { n |= (bys[i] & 0xff) << ((isBigEndian ? (k - i - 1) : i) * Byte.SIZE); } return n; }}
㈦ java中怎么从byte字节流转换为中文
得知道原来的编码,不然就是使用默认的编码名称
String str = new String(bytes);
String str = new String(bytes, "gbk");
㈧ java byte转换成字符串
java byte转换成字符串方法:
1.使用String的valueOf()方法进行转换:
byteb=3;
Stringstr=String.valueOf(b);
2.直接在字符串后面添加“”转换为字符串
Stringstr=b+“”;
㈨ java byte字符串 转换成 byte
public class ByteTest {
public static void main(String[] args) {
String str = "Hello world!";
// string转byte
byte[] bs = str.getBytes();
System.out.println(Arrays.toString(bs));
// byte转string
String str2 = new String(bs);
System.out.println(str2);
}
}
㈩ java中如何将byte[]里面的数据转换成十六进制
System.out.println(Integer.toHexString(b[0]))
Integer.toHexString()方法可以将一个整数输出为十六进制格式。但是返回值是字符串。
byte类型本身无进制可言。