Codec工具类
import java.math.BigInteger;
import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* Codec工具类
* Integer.toHexString(),Long.toHexString(),BigInteger.toString(16)均无前导0,和Hex编码不一致,所以不直接用
*/
public class CodecUtil {/**
* 将字节数组编码为HEX编码的字符串
*/
public static String encodeHex(byte[] dataBytes) {
String dataString = null;
dataString = new String(Hex.encodeHex(dataBytes));
return dataString;
} /**
* 将HEX编码的字符串解码为字节数组
*/
public static byte[] decodeHex(String dataString) {
byte[] dataBytes = null;
if (dataString != null) {
try {
dataBytes = Hex.decodeHex(dataString.toCharArray());
} catch (DecoderException e) {
logger.warn(e, e);
}
}
return dataBytes;
} /**
* 以十六进制的无符号整数形式返回一个byte参数的字符串表示形式(有前导0)
*/
public static String toHexString(byte b) {
String dataString = null;
dataString = encodeHex(toByteArray(b));
return dataString;
} /**
* 以十六进制的无符号整数形式返回一个short参数的字符串表示形式(有前导0)
*/
public static String toHexString(short s) {
String dataString = null;
dataString = encodeHex(toByteArray(s));
return dataString;
} /**
* 以十六进制的无符号整数形式返回一个int参数的字符串表示形式(有前导0)
*/
public static String toHexString(int i) {
String dataString = null;
dataString = encodeHex(toByteArray(i));
return dataString;
} /**
* 以十六进制的无符号整数形式返回一个long参数的字符串表示形式(有前导0)
*/
public static String toHexString(long l) {
String dataString = null;
dataString = encodeHex(toByteArray(l));
return dataString;
} /**
* 以十六进制的无符号整数形式返回一个BigInteger参数的字符串表示形式(有前导0)
*/
public static String toHexString(BigInteger b) {
String dataString = null;
dataString = encodeHex(toByteArray(b));
return dataString;
} /**
* 返回一个字节数组,该数组包含此byte的二进制补码表示形式
*/
public static byte[] toByteArray(byte b) {
byte[] dataBytes = null;
dataBytes = new byte[1];
dataBytes[0] = b;
return dataBytes;
} /**
* 返回一个字节数组,该数组包含此short的二进制补码表示形式
*/
public static byte[] toByteArray(short s) {
byte[] dataBytes = null;
dataBytes = new byte[2];
dataBytes[0] = (byte) ((s >>> 8) & 0xff);
dataBytes[1] = (byte) (s & 0xff);
return dataBytes;
} /**
* 返回一个字节数组,该数组包含此int的二进制补码表示形式
*/
public static byte[] toByteArray(int i) {
byte[] dataBytes = null;
dataBytes = new byte[4];
dataBytes[0] = (byte) ((i >>> 24) & 0xff);
dataBytes[1] = (byte) ((i >>> 16) & 0xff);
dataBytes[2] = (byte) ((i >>> 8) & 0xff);
dataBytes[3] = (byte) (i & 0xff);
return dataBytes;
} /**
* 返回一个字节数组,该数组包含此long的二进制补码表示形式
*/
public static byte[] toByteArray(long l) {
byte[] dataBytes = null;
dataBytes = new byte[8];
dataBytes[0] = (byte) ((l >>> 56) & 0xff);
dataBytes[1] = (byte) ((l >>> 48) & 0xff);
dataBytes[2] = (byte) ((l >>> 40) & 0xff);
dataBytes[3] = (byte) ((l >>> 32) & 0xff);
dataBytes[4] = (byte) ((l >>> 24) & 0xff);
dataBytes[5] = (byte) ((l >>> 16) & 0xff);
dataBytes[6] = (byte) ((l >>> 8) & 0xff);
dataBytes[7] = (byte) (l & 0xff);
return dataBytes;
} /**
* 返回一个字节数组,该数组包含此BigInteger的二进制补码表示形式
*/
public static byte[] toByteArray(BigInteger b) {
byte[] dataBytes = null;
dataBytes = b.toByteArray();
return dataBytes;
} /**
* 根据EsmClass返回TpUdhi
* @return
*/
public static int getTpUdhiFromEsmClass(int esmClass) {
int tpUdhi = (esmClass & 0x40) >> 6;
return tpUdhi;
} /**
* 根据TpUdhi返回EsmClass
*/
public static int getEsmClassFromTpUdhi(int tpUdhi) {
int esmClass = tpUdhi << 6;
return esmClass;
} }
Codec工具类的更多相关文章
- Rhino+envjs-1.2.js 在java运行网站js 工具类
java爬虫遇到个页面加密的东西,找了些资料学习学习 做了个java运行js的工具类,希望对大家有用,其中用到client(获取js)可以自行换成自己的client.主要是用了 Rhino就是Java ...
- Mina工具类v1.5
package com.cucpay.fundswap.util; import java.net.InetSocketAddress; import java.nio.charset.Charset ...
- 加密工具类 - CryptoUtils.java
加密工具类,包含MD5,BASE64,SHA,CRC32的加密与解密方法. 源码如下:(点击下载 - CryptoUtils.java.commons-io-2.4.jar.commons-code ...
- JSP图片上传 公共工具类
需要jsmartcom_zh_CN.jar支持. 下载地址: http://files.cnblogs.com/simpledev/jsmartcom_zh_CN.rar <%@page imp ...
- Java操作图片的工具类
操作图片的工具类: import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.a ...
- Apache Commons 工具类介绍及简单使用
转自:http://www.cnblogs.com/younggun/p/3247261.html Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下 ...
- Java图片工具类,完成图片的截取和任意缩放
package com.common.util; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Renderin ...
- 数据持久化之SP的优化—送工具类
第一点:sp存储的是键值对 getSharedPreferences 第一个參数是你保存文件的名字,第个是保存的模式一般能够默觉得0 先看普通 使用SP 存储String类型字符串吧 SharedPr ...
- linkin大话数据结构--apache commons工具类
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动. 一.Commons BeanUtils 说明:针对Bean的一个工具集.由于Bean往往是有一堆ge ...
随机推荐
- Ubuntu中使用pyUSB读取鼠标或键盘的数据程序
参考 :http://www.orangecoat.com/how-to/read-and-decode-data-from-your-mouse-using-this-pyusb-hack 要注意的 ...
- js变量申明提前及缺省参数
现在最先的行为准则:js变量申明必须带var:然后开始随笔: 函数中的变量申明在编译的时候都会提到函数开头. 例如: function foo(){ console.log('some code he ...
- IO-同步,异步,阻塞,非阻塞,阅读摘要
http://www.cnblogs.com/Fly-Wind/p/io.html http://blog.csdn.net/historyasamirror/article/details/5778 ...
- Juicer javascript 模板引擎
模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. js模板引擎包括如下:template官方参考:http://au ...
- unsupported dynamic reloc R_ARM_REL32 AND hidden symbol '__dso_handle' is not defined
项目里编译codec src\makefiles\android\codec\Makefileline 25 原本用 4.6 不会报错-L/data/android/android-ndk/sourc ...
- 在Windows Server 下安装 Oracle 11G 的一般步骤
- fx-experience-tools
http://fxexperience.com/2012/03/announcing-fx-experience-tools/ I have some cool new stuff for you t ...
- Spring入门(7)-自动检测Bean
Spring入门(7)-自动检测Bean 本文介绍如何自动检测Bean. 0. 目录 使用component-scan自动扫描 为自动检测标注Bean 1. 使用component-scan自动扫描 ...
- HTML5几种常见的错误写法
本文介绍了HTML5常见的6种错误写法,包括:1.不要使用section作为div的替代品 2.只在需要的时候使用header和hgroup 3.不要把所有列表式的链接放在nav里 4.figure元 ...
- HDU 2874 Connections between cities (LCA)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2874 题意是给你n个点,m条边(无向),q个询问.接下来m行,每行两个点一个边权,而且这个图不能有环路 ...