A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhanghua 黑马帝   /  2011-11-15 09:02  /  1518 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zhanghua 于 2011-11-21 13:59 编辑

如何将一个二进制文件,用byte读取出来,然后转换成十六进制,存在.txt文件中

评分

参与人数 1黑马币 +1 收起 理由
老罗 + 1

查看全部评分

2 个回复

倒序浏览
qy 黑马帝 2011-11-15 12:18:57
沙发
  1.           File file = new File(filepath);
  2.                   DataInputStream dps = new DataInputStream(new FileInputStream(file));
  3.                   StringBuilder hexData = new StringBuilder();
  4.                   byte bt = 0;
  5.                   for(int i=0;i<file.length();i++) {
  6.                    bt = dps.readByte();
  7.                    // 以十六进制的无符号整数形式返回一个字符串表示形式。
  8.                    String str = Integer.toHexString(bt);
  9.                    if(str.length() == 8) {  //去掉补位的f
  10.                     str = str.substring(6);
  11.                    }
  12.                    if(str.length() == 1) {
  13.                     str = "0"+str;
  14.                    }
  15.                    hexData.append(str.toUpperCase());
  16.                   }
  17.                   return hexData.toString();
  18.                  }
  19.        

  20.                  public static void main(String[] args) throws IOException {
  21.                     String filepath = "E:\\a.txt";
  22.                    String s =dataInputStream(filepath);
  23.                   FileOutputStream fps = new FileOutputStream("E:\\b.txt");//将十六进制数存成文本
  24.                   fps.write(s.getBytes());
  25.                   fps.close();
  26.                  }
复制代码

评分

参与人数 1技术分 +2 收起 理由
老罗 + 2 赞一个!

查看全部评分

回复 使用道具 举报
qy 黑马帝 2011-11-15 12:22:00
藤椅
少一句重要的代码: 添加到 01 行上面  ---》public static String  dataInputStream(String filepath) throws IOException {
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马