ByteUtil
|
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ByteUtil { private static final Logger LOGGER = LoggerFactory.getLogger(ByteUtil.class); public static String getString(ByteBuffer byteBuffer) { short len = byteBuffer.getShort(); byte[] bb = new byte[len]; byteBuffer.get(bb); String str = null; try { str = new String(bb, "UTF-8"); } catch (UnsupportedEncodingException e) { LOGGER.error("读取字符串错误."); } return str; } public static byte[] mergeByteArray(byte[] bb1, byte[] bb2) { int len1 = bb1.length; int len2 = bb2.length; byte[] bb = new byte[len1 + len2]; System.arraycopy(bb1, 0, bb, 0, len1); System.arraycopy(bb2, 0, bb, len1, len2); return bb; } public static byte[] booleanToBytes(boolean b) { byte[] bb = new byte[1]; bb[0] = (byte)((b) ? 1 : 0); return bb; } public static byte[] byteToBytes(byte b) { byte[] bb = new byte[1]; bb[0] = b; return bb; } public static byte[] shortToBytes(short s) { ByteBuffer byteBuffer = ByteBuffer.allocate(2); byteBuffer.putShort(s); byteBuffer.flip(); byte[] bb = new byte[byteBuffer.limit()]; byteBuffer.get(bb); return bb; } public static byte[] intToBytes(int i) { ByteBuffer byteBuffer = ByteBuffer.allocate(4); byteBuffer.putInt(i); byteBuffer.flip(); byte[] bb = new byte[byteBuffer.limit()]; byteBuffer.get(bb); return bb; } public static byte[] longToBytes(long l) { ByteBuffer byteBuffer = ByteBuffer.allocate(8); byteBuffer.putLong(l); byteBuffer.flip(); byte[] bb = new byte[byteBuffer.limit()]; byteBuffer.get(bb); return bb; } public static byte[] stringToBytes(String s) { byte[] bb = null; try { bb = s.getBytes("UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return bb; } public static <T> T byteArrayToObject(byte[] bb) { Object obj = null; ByteArrayInputStream bais = null; ObjectInputStream ois = null; try { bais = new ByteArrayInputStream(bb); ois = new ObjectInputStream(bais); obj = ois.readObject(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (ois != null) ois.close(); } catch (IOException e) { e.printStackTrace(); }try { if (bais != null) bais.close(); } catch (IOException e) { e.printStackTrace(); } } return obj; } public static byte[] objectToByteArray(Object obj) { byte[] bb = null; ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = null; try { oos = new ObjectOutputStream(baos); oos.writeObject(obj); bb = baos.toByteArray(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (oos != null) oos.close(); } catch (IOException e) { e.printStackTrace(); }try { if (baos != null) baos.close(); } catch (IOException e) { e.printStackTrace(); } } return bb; } } |
ByteUtil的更多相关文章
- ByteUtil 工具类
ByteUtil 工具类 import java.io.FileOutputStream; import java.io.OutputStream; import java.nio.charset.C ...
- MyCat源码分析系列之——结果合并
更多MyCat源码分析,请戳MyCat源码分析系列 结果合并 在SQL下发流程和前后端验证流程中介绍过,通过用户验证的后端连接绑定的NIOHandler是MySQLConnectionHandler实 ...
- NPOI、MyXls、Aspose.Cells 导入导出Excel(转)
Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导s出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题: 导出问题: 如果是asp.net,你 ...
- byte数据的常用操作函数[转发]
/// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...
- csharp: Export or Import excel using MyXls,Spire.Xls
excel 2003 (效果不太理想) using System; using System.Collections.Generic; using System.ComponentModel; usi ...
- [转].net 使用NPOI或MyXls把DataTable导出到Excel
本文转自:http://www.cnblogs.com/yongfa365/archive/2010/05/10/NPOI-MyXls-DataTable-To-Excel-From-Excel.ht ...
- Java字节转换类实现
Java的类库支持完全不如C#,比如时间类,比如数据类型转换类等等,难道是我自己没找到吗? 下面是字节转换类,byte[]与short, int, long, float, double, Strin ...
- [转载] java中byte数组与int,long,short间的转换
文章转载自http://blog.csdn.net/leetcworks/article/details/7390731 package com.util; /** * * <ul> * ...
- 【转】java中float与byte[]的互转 -- 不错
原文网址:http://tjmljw.iteye.com/blog/1767716 起因:想把一个float[]转换成内存数据,查了一下,下面两个方法可以将float转成byte[]. 方法一 imp ...
随机推荐
- 如何把标准cout 输出到 自己写的web server
如何把标准cout 输出到 自己写的web server 如何把标准cout 输出到 自己写的web server 如何把标准cout 输出到 自己写的web server cgi的功能? 有时间实现 ...
- 【Android Studio】Gradle
Plugin version Required Gradle version 1.0.0 - 1.1.3 2.2.1 - 2.3 1.2.0 - 1.3.1 2.2.1 - 2.9 1.5.0 2.2 ...
- Dinner Bet Gym - 101174D (期望dp)
Problem D: Dinner Bet \[ Time Limit: 1.5 s \quad Memory Limit: 256 MiB \] 题意 题意是两个人在玩游戏,一共有\(n\)张牌,这 ...
- C和C++的不同点
一.返回值 C中:如果函数未指定返回值类型,则默认为int c++中:如果一个函数没有返回值,返回值类型必须指定为void 二.参数列表 C中:如果函数没有指定参数列表,则默认可以接受任意多个参数 C ...
- LeetCode 1234. Replace the Substring for Balanced String
原题链接在这里:https://leetcode.com/problems/replace-the-substring-for-balanced-string/ 题目: You are given a ...
- ent 基本使用十 数据库迁移
ent 提供了便捷的数据库迁移处理,我们可以直接使用生成的代码进行操作,同时代码也提供了比较全的运行选项 默认迁移处理 我们通过create 进行资源创建,默认是append-only 模式 ,以为着 ...
- 常用方法 DataTable转换为Html
点击单元格 可以输出行和列,这个功能可以在一些特殊的地方用 public static string GetHtmlString(DataTable dt) { StringBuilder sb = ...
- 在UE4C++中的宏
1. UE4蓝图的宏 在蓝图中,我们可以把一堆经常使用的节点封装为一个宏,然后通过多次使用这个宏,达到了减少重复代码量的效果. 如图: 2. UE4C++中的宏 那么,在UE4的C++中怎么实现宏呢? ...
- React-HelloWorld
React-HelloWorld 最简单的React示例如下: ReactDOM.render( <h1>Hello,world!</h1>, document.getelem ...
- [linux][c/c++]代码片段02
gcc `pkg-config --cflags gtk+-3.0` -o example-1 example-1.c `pkg-config --libs gtk+-3.0` #include &l ...