package eccl.socket.tools;
public class ByteOperator{
public ByteOperator(){
}
/**
* 长整形转化为byte类型
*/
public static void putLong(byte[] buf,int offset,long value) {
buf[offset + 0] = (byte) ((value >> 56) & 0xff);
buf[offset + 1] = (byte) ((value >> 48) & 0xff);
buf[offset + 2] = (byte) ((value >> 40) & 0xff);
buf[offset + 3] = (byte) ((value >> 32) & 0xff);
buf[offset + 4] = (byte) ((value >> 24) & 0xff);
buf[offset + 5] = (byte) ((value >> 16) & 0xff);
buf[offset + 6] = (byte) ((value >> 8) & 0xff);
buf[offset + 7] = (byte) ((value >> 0) & 0xff);
}
/**
* byte 型转化为 Long 类型
*/
public static long getLong(byte[] bytes, int index) {
return ((((long) bytes[index + 0] & 0xff) << 56)
| (((long) bytes[index + 1] & 0xff) << 48)
| (((long) bytes[index + 2] & 0xff) << 40)
| (((long) bytes[index + 3] & 0xff) << 32)
| (((long) bytes[index + 4] & 0xff) << 24)
| (((long) bytes[index + 5] & 0xff) << 16)
| (((long) bytes[index + 6] & 0xff) << 8) | (((long) bytes[index + 7] & 0xff) << 0));
}
/**
* 整形转化为byte类型
*/
public static void putInt(byte[] buf,int offset,int value) {
buf[offset+0] = (byte)((value >> 24) & 0xff);
buf[offset+1] = (byte)((value >> 16) & 0xff);
buf[offset+2] = (byte)((value >> 8) & 0xff);
buf[offset+3] = (byte)((value >> 0) & 0xff);
}
/**
* byte类型转换为int型
*/
public static int getInt(byte[] bytes, int index) {
return (int) ((((bytes[index + 0] & 0xff) << 24) | ((bytes[index + 1] & 0xff) << 16) | ((bytes[index + 2] & 0xff) << 8) | ((bytes[index + 3] & 0xff) << 0)));
}
/**
* 浮点型转化为byte类型
*/
public static void putFloat(byte[] buf,int offset,float value){
try {
putInt(buf,offset,Float.floatToIntBits(value));
}
catch (Exception ex) {
System.out.print("convert the float to Byte is error!\n");
}
}
/**
* byte类型转换为浮点型
*/
public static float getFloat(byte[] bytes,int index){
int num = ((bytes[index]<<24)&0xFF000000)|((bytes[index+1]<<16)&0xFF0000)|((bytes[index+2]<<8)&0xFF00)|(bytes[index+3]&0xFF);
float f = Float.intBitsToFloat(num);
return f;
}
/**
* byte 类型转换为 short型
*/
public static short getShort(byte[] bytes, int index) {
return (short) (((bytes[index] << 8) | bytes[index + 1] & 0xff));
}
/**
* 短整形转化为byte类型
*/
public static void putShort(byte[] buf,int offset,short value) {
buf[offset+0] = (byte)((value >> 8) & 0xff);
buf[offset+1] = (byte)((value >> 0) & 0xff);
}
/**
* 字符串转化为byte类型
*/
public static void putStr(byte[] buf,int offset,int length,String value) {
try{
byte[] tmpByte = value.getBytes();
for(int i=length-1;i>=0;i--){
// buf[offset+i] = tmpByte[i];
buf[offset+i] = tmpByte[i];
}
}catch(Exception e)
{
System.out.print("convert the String to Byte is error!\n"+e);
}
}
/**
* byte型转换为字符串型
*/
public static String getStr(byte[] bytes,int index){
byte[] str = new byte[4];
for(int i=0;i<4;i++){
str[i] = bytes[index+i];
}
return new String(str);
}
}
分享到:
- 2008-03-10 14:08
- 浏览 1046
- 评论(0)
- 论坛回复 / 浏览 (0 / 2153)
- 查看更多
相关推荐
图片转换成字节流先要转换的IMage对象,转换之后返回字节流。字节流转换成图片,要转换的字节流,转换得到的Image对象,根据图片路径返回图片的字节流,感兴趣的朋友看下下面的代码。 C#将图片和字节流相互转换代码...
Java实现字节流与图片的转化
Java实现字节流与图片的转化Java源码
序列化(Serialization)是指把结构化对象转化为字节流。 反序列化(Deserialization)是序列化的逆过程。即把字节流转回结构化对象。 Java序列化(java.io.Serializable) Hadoop序列化的特点 ...
Java实现字节流与图片的转化Java实用源码整理learns.
c#中的流,字节,字符,字符串的互相转化
定义protobuf文件(包含enum,message,required,optional,repeated, 结构体定义中引用另一个结构体), 生成java文件,能够构建java对象,并转化为字节byte或者流,能够将流或字节转化为对象
1 图片上传:上传图片时,首先获得图片的路径,创建文件,并将图片转化为字节流写入到request,并发送该请求。 客户端代码: File file = new File(imageUrl); String ...
封装是一个将Python数据对象转化为字节流的过程,拆封是封装的逆操作,将字节文件或字节对象中的字节流转化为Python数据对象,不要从不收信任的数据源中拆封数据。可以封装和拆封几乎任何Python数据对象,主要包括:...
通俗来讲,如果客户端和服务端使用的是不同的语言,那么在服务端定义一个数据结构,通过protobuf转化为字节流,再传送到客户端解码,就可以得到对应的数据结构。这就是protobuf神奇的地方。并且,它的通信效率极高,...
Unity中Byte[]转Image,读取本地文件字节流,将其转换成图片
4BYTE字节转换成float型数据代码
序列化是指将结构化对象转化为字节流以便在网络上传输或者写到磁盘永久存储的过程。下面通过本文给大家分享Java Object Serialization与 Hadoop 序列化,需要的朋友可以参考下
学习 Avro Apache Avro:trade_mark: 是一个数据序列化系统。 有关更多信息,请参阅此。...3.如何将你的对象转化为字节流,然后你可以随心所欲,例如在机器之间发送 4.如何从字节流中检索对象 待续
1. PHP下将X509的证书key转为PEM编码,便于OPENSSL处理; 2. 将Modulus/Exponent形式的RSA Key转为PEM编码格式。
定义: 把模块定义成二进制语言... 您可能感兴趣的文章:python字符串str和字节数组相互转化方法Python中struct模块对字节流/二进制流的操作教程Python使用dis模块把Python反编译为字节码的用法详解Python每天必学之b
把这个WebService部署在文件服务器上,然后在网站后台调用这个WebService,把网站后台页面上传上来的文件转化为字节流传给WebService,然后WebService把这个字节流保存文件到一个只允许静态页面的网站(静态网站可以...
一般在解码时刻通过YUV411或是YUV420可将码流输出图片的格式对应转化成BMP或JPG,这里由于抓拍的图片为BMP,而往FTP服务器上传的(数据库读取的)只能是JPG(文件较小),所有写了这个DEMO供参考!
NULL 博文链接:https://yuhuiblog695685688425687986842568269.iteye.com/blog/2348235
• 将该二进制流中的静态存储结构转化为方法去运行时数据结 构。 • 在内存中生成该类的 Class 对象,作为该类的数据访问入口。 2. 验证 验证的目的是为了确保 Class 文件的字节流中的信息不回危害到 虚拟机.在该...