Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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 随机存取文件结尾问题_Java_Stream_Endianness_Randomaccessfile - Fatal编程技术网

Java 随机存取文件结尾问题

Java 随机存取文件结尾问题,java,stream,endianness,randomaccessfile,Java,Stream,Endianness,Randomaccessfile,我必须从二进制文件中读取字节、整数和长数据大小的数据。我用RandomAccessFile的方法阅读它,readInt,readLong,readByte。问题是系统的端点 (Windows 8.1)和文件的endiannes是不同的。例如,文件中的这个数字实际上是编号2,但它从系统中读取为33554432 如何解决此问题并能够使用RandomAccessFile的方法读取数据块 问题是系统的持久性。。。并且文件的结尾是不同的 不,它们是一样的。看看数据。最低有效字节位于起始位置。这就是小end

我必须从二进制文件中读取字节、整数和长数据大小的数据。我用RandomAccessFile的方法阅读它,
readInt
readLong
readByte
。问题是系统的端点 (Windows 8.1)和文件的endiannes是不同的。例如,文件中的这个数字实际上是编号
2
,但它从系统中读取为
33554432

如何解决此问题并能够使用
RandomAccessFile
的方法读取数据块

问题是系统的持久性。。。并且文件的结尾是不同的

不,它们是一样的。看看数据。最低有效字节位于起始位置。这就是小endian,也就是英特尔endian。(Windows endianness,除特定平台外,AFAIK不存在)

问题是文件和系统的尾数都是小尾数,而
RandomAccessFile
是大尾数

在Java中解决这一问题的方法是通过NIO和
ByteBuffer
,使用本机字节顺序而不是默认顺序

问题是系统的持久性。。。并且文件的结尾是不同的

不,它们是一样的。看看数据。最低有效字节位于起始位置。这就是小endian,也就是英特尔endian。(Windows endianness,除特定平台外,AFAIK不存在)

问题是文件和系统的尾数都是小尾数,而
RandomAccessFile
是大尾数


在Java中解决这个问题的方法是通过NIO和
ByteBuffer
,使用本机字节顺序,而不是默认的。

您是否可以用ByteBuffer包装RandomAccessFile中的每个字节数组,然后对其重新排序?我仍然发现名称令人困惑:little endian意味着little在末尾。。。哦,不,在开始的时候。你能用ByteBuffer将RandomAccessFile中的每个字节数组包装起来,然后重新排序吗?我仍然发现名称令人困惑:little endian意味着little在末尾。。。哦,不,一开始。