从一个包含十六进制的文件中(每行48个字节)读取数据,截取前2位后,转换为十进制插入数据库。
现在的问题是:在读出十六进制数据后我用println在控制台打印出来的都是[B@186db54 ,[B@dc8569
之类以[B@开头的字符。请问如何才能转换为十进制。附上程序package com.tw.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;public class Read { private String filename;
private int size; public Read(String filename, int size) {
this.filename = filename;
this.size = size;
}
public void read() {
File file1 = new File(filename);
FileInputStream is=null;
try {
is = new FileInputStream(file1);
byte[] var = new byte[size];
byte[] var2=new byte[4];
int data;
while ((data = is.read(var)) != -1) {
var2=Arrays.copyOf(var, 4);
System.out.println(var2);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String args[]) {
Read test = new Read("C:\\FileB100512010DCBB4.pos", 48);
test.read();
}
}
运行结果如下:
[B@dc8569
[B@1bab50a
[B@c3c749
[B@150bd4d
[B@1bc4459
[B@12b6651
[B@4a5ab2
[B@1888759
[B@6e1408用Integer 转换了老半天一直不行,提示格式转换错误 。为什么前面有[B@这玩意儿。在线等。。括弧6点之前下班,
晚上7点上线再等)

解决方案 »

  1.   

    byte[]  就是带B@  的对象
      

  2.   

    不知道lz想看什么格式的
    System.out.println(Arrays.toString(var));
      

  3.   

    我现在就是想把这个截取的byte 数组转换成十进制 谢谢大家
      

  4.   

    System.out.println(Arrays.toString(var));这样输出
     System.out.println(var2);只是输出了var2默认的toString方法,是继承自object的
      

  5.   

    估计是我没有讲清楚。这个 *.pos 文件中我用UE打开存储的都是这
    28 35 08 36 A5 4D C1 45 ........每行是48个。
    现在就是想每次读一行。然后截取前面的二个。
    如 28 35  然后把 2835 转换成十进制。  2835-----》10292 
    谢谢前面的朋友了。。在线等。急啊。
    哪位可以解决加分啊。