Java 中4字节形式数据转换为float

来源:互联网 发布:淘宝素材主图怎么做 编辑:程序博客网 时间:2024/05/16 07:35

将4字节形式的float数据转换成float

通过对字节形式的数据进行封装通java提供的API方法进行转换

  • 先确定byte形式的数据顺序(大端模式/小端模式)
  • 将byte数据封装为ByteArrayInputStream 类型
  • 再将ByteArrayInputStream 封装为DataInputStream 类型
  • 调用DataInputStream 的readFloat方法获得float数据

    readFloat方法读取四个输入字节并返回一个 float 值。
    方法说明

    float readFloat() throws IOException
    读取四个输入字节并返回一个 float 值。实现这一点的方法是:先使用与 readInt 方法完全相同的方式构造一个 int 值,然后使用与 Float.intBitsToFloat 方法完全相同的方式将此 int 值转换成一个 float 值。此方法适用于读取用接口 DataOutput 的 writeFloat 方法写入的字节。
    返回:读取的 float 值。
    抛出:
    EOFException - 如果此流在读取所有字节之前到达末尾。
    IOException - 如果发生 I/O 错误。

*示例代码如下:*

import java.io.ByteArrayInputStream;import java.io.DataInputStream;import java.io.IOException;import java.nio.ByteBuffer;public class BytesToFloat {    /**     * @param args     * @throws IOException      */    public static void main(String[] args) throws IOException {        //float 类型值为123.456 以大端模式存储数据即高字节存于低地址,低字节存于高地址,小端模式反之        byte bytes[]={0x42,(byte) 0xf6,(byte)0xE9,0x79};        //创建一个 ByteArrayInputStream,使用bytes作为其缓冲区数组        ByteArrayInputStream bais = new ByteArrayInputStream(bytes);        //再将bais 封装为DataInputStream类型        DataInputStream dis=new DataInputStream(bais);        float flt=dis.readFloat();        dis.close();      System.out.println(flt);    }}
0 0
原创粉丝点击