黑马程序员技术交流社区

标题: 急急急,求解答!绝对有用 [打印本页]

作者: zhanghua    时间: 2011-11-15 09:02
标题: 急急急,求解答!绝对有用
本帖最后由 zhanghua 于 2011-11-21 13:59 编辑

如何将一个二进制文件,用byte读取出来,然后转换成十六进制,存在.txt文件中
作者: qy    时间: 2011-11-15 12:18
  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.                  }
复制代码

作者: qy    时间: 2011-11-15 12:22
少一句重要的代码: 添加到 01 行上面  ---》public static String  dataInputStream(String filepath) throws IOException {




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2