关于读取十六进制文件转换十进制的问题

lovebabu 2010-05-14 05:51:18
从一个包含十六进制的文件中(每行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点上线再等)
...全文
317 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinyong3771912 2011-07-07
  • 打赏
  • 举报
回复
不会呢!
lovebabu 2010-05-15
  • 打赏
  • 举报
回复
估计是我没有讲清楚。这个 *.pos 文件中我用UE打开存储的都是这
28 35 08 36 A5 4D C1 45 ........每行是48个。
现在就是想每次读一行。然后截取前面的二个。
如 28 35 然后把 2835 转换成十进制。 2835-----》10292
谢谢前面的朋友了。。在线等。急啊。
哪位可以解决加分啊。
zfq642773391 2010-05-14
  • 打赏
  • 举报
回复
System.out.println(Arrays.toString(var));这样输出
System.out.println(var2);只是输出了var2默认的toString方法,是继承自object的
ArayChou 2010-05-14
  • 打赏
  • 举报
回复
需求没描述清楚,别说大牛,就是神仙也未必可以帮上忙啊
lovebabu 2010-05-14
  • 打赏
  • 举报
回复
啊啊,用力顶呀。。大牛们都哪里去了。
lovebabu 2010-05-14
  • 打赏
  • 举报
回复
顶。。谁能告诉怎么做呀。。不能沉呀。。。。。。。。。。。。。。。。我顶
lovebabu 2010-05-14
  • 打赏
  • 举报
回复
我现在就是想把这个截取的byte 数组转换成十进制 谢谢大家
shine333 2010-05-14
  • 打赏
  • 举报
回复
不知道lz想看什么格式的
System.out.println(Arrays.toString(var));
jypapgl 2010-05-14
  • 打赏
  • 举报
回复
byte[] 就是带B@ 的对象
lovebabu 2010-05-14
  • 打赏
  • 举报
回复
我顶。
牛叔 2010-05-14
  • 打赏
  • 举报
回复
我是来接分的
头晕
不想看代码

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧