您的位置:首页 > 其它

字节类型的数据转换为16进制的字符串

2011-06-22 13:48 288 查看
/**
*将字节类型数据转换为16进制的字符串,参考《Think in Java》
*/
import java.io.FileInputStream;
import java.io.File;
public class Hex{
/**字节类型的数据转换为16进制的字符串*/
public static String byteToHex(byte[] data){
StringBuilder result = new StringBuilder();
int n = 0;
for(byte b:data){
if(n%16==0)
result.append(String.format("%05X: ",n));  //添加行号
result.append(String.format("%02X ",b));  //格式化为16进制
n++;
if(n%16==0) result.append("/n");   //换行,每16个数字为一行
}
result.append("/n");
return result.toString();
}

/**读取文件数据*/
private static byte[] read(String pathName) throws Exception{
File file = new File(pathName);
FileInputStream in = new FileInputStream(file);
byte[] data = new byte[in.available()];
in.read(data);
in.close();
return data;
}

/**测试*/
public static void main(String[] args) throws Exception{
if(args.length==0)
System.out.println(byteToHex(read("Hex.class")));
else
System.out.println(byteToHex(read(args[0])));
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐