Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何以little endian格式使用SeekableByteChannel读取和写入整数?_Java_Endianness_Nio2 - Fatal编程技术网

Java 如何以little endian格式使用SeekableByteChannel读取和写入整数?

Java 如何以little endian格式使用SeekableByteChannel读取和写入整数?,java,endianness,nio2,Java,Endianness,Nio2,我需要读写带符号和无符号的整数,带有一个小尾端格式的seekablybytechnel。这可能看起来很愚蠢,但我在JDK中找不到任何东西。我是不是错过了什么,还是希望我自己来做?这没问题,但我今天不想重新发明轮子。:-) 听起来像是一部为大众而作的作品 有点像 public static void main(String[] args) { byte[] payload = toArray(-1991249); int number = fromArray(payload);

我需要读写带符号和无符号的整数,带有一个小尾端格式的seekablybytechnel。这可能看起来很愚蠢,但我在JDK中找不到任何东西。我是不是错过了什么,还是希望我自己来做?这没问题,但我今天不想重新发明轮子。:-)

听起来像是一部为大众而作的作品

有点像

public static void main(String[] args) {
    byte[] payload = toArray(-1991249);
    int number = fromArray(payload);
    System.out.println(number);
}

public static  int fromArray(byte[] payload){
    ByteBuffer buffer = ByteBuffer.wrap(payload);
    buffer.order(ByteOrder.LITTLE_ENDIAN);
    return buffer.getInt();
}

public static byte[] toArray(int value){
    ByteBuffer buffer = ByteBuffer.allocate(4);
    buffer.order(ByteOrder.LITTLE_ENDIAN);
    buffer.putInt(value);
    return buffer.array();
}

你有代码吗?我在JDK中没有看到任何称为SeekableByteChannel的东西,在nio包中我能看到的最接近它的东西是WritableByteChannel。这是JSE 7中的java.nio.channels.SeekableByteChannel。啊,我现在看到了。对不起,我以为我看了6和7,但实际上只看了6两次..啊,那是丢失的链接-谢谢。当然,我需要ByteOrder.LITTLE_ENDIAN.好的,我可能需要写一个decorator,这样我就可以轻松地读写无符号整数了。