如何从设备读取十六进制格式数据?

时间:2012-03-09 09:38:58

标签: java sockets gps

任何人都可以解释如何使用套接字编程从设备读取数据。设备正在发送Hexa格式,因此无法读取该数据,请帮助我如何做到这一点。

StringBuffer instr = null;
instr = new StringBuffer();
buf = new byte[4096];
int br = socket.getInputStream().read(buf);
for(int i =0;i<br;i++){
            instr.append((char) buf[i]);

            }
data = instr.toString();

使用上面的代码,请帮助我。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此代码段

public String convertHexToString(String hex){

          StringBuilder sb = new StringBuilder();
          StringBuilder temp = new StringBuilder();

          //49204c6f7665204a617661 split into two characters 49, 20, 4c...
          for( int i=0; i<hex.length()-1; i+=2 ){

              //grab the hex in pairs
              String output = hex.substring(i, (i + 2));
              //convert hex to decimal
              int decimal = Integer.parseInt(output, 16);
              //convert the decimal to character
              sb.append((char)decimal);

              temp.append(decimal);
          }
          System.out.println("Decimal : " + temp.toString());

          return sb.toString();
      }