首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

byte[]数组的有关问题 急求答案

2012-01-29 
byte[]数组的问题 急求答案!我定义了一个byte[]tempnewbyte[4],通过randomaccessfile的read(byte)读取一

byte[]数组的问题 急求答案!
我定义了一个byte[]   temp=new   byte[4],通过randomaccessfile   的read(byte)读取一个二进制文件,里面是浮点数,现在要把temp里的浮点数读出来,我用了下面的方法:int   accum=0;
int   i=0;
for(   int   shiftBy=0;shiftBy <32;shiftBy+=8){
accum|=((long)(temp[i]&0xff)) < <shiftBy;
i++;
}
out.println(Float.intBitsToFloat(accum));
可是结果不正确,望高手给与指点,不胜感激!!!!!!!!!!!

[解决办法]
使用Double.longBitsToDouble看看.
----------------------------------

long n = 0L;
for (int i = 7; i > = 0; i--){
n = (n < < 8) | (b[i] & 0xffL);
}
double d = Double.longBitsToDouble(n);

[解决办法]
没有必要你去给它转化~~~
读到一个ByteArrayOutputStream就可以了~~

try {
RandomAccessFile raf = new RandomAccessFile( "fileName ", "r ");

ByteArrayOutputStream bos = new ByteArrayOutputStream();
while (true){
int b = raf.read();
if (b == -1){
break;
}
bos.write(b);
}
System.out.println(bos.toString());
bos.close();
raf.close();
} catch (Exception e) {
e.printStackTrace();
}
[解决办法]
Float.intBitsToFloat
Double.longBitsToDouble
这两种方法出来的结果都不对啊~~
[解决办法]
哈,学习了,我对这方法不是很明白呀。谢谢
[解决办法]
intBitsToFloat,查一下jdk的api

热点排行