2

我习惯了 C#,但我正在尝试制作一个将前 4 个字节读入数组的应用程序,但我没有成功。我还需要反转文件上的字节序,我不知道在 Java 中如何,在 C# 中它是Array.Reverse(bytes);. 我尝试将文件读入 Int32,但由于某种原因,我无法从那里将其放入数组中。

4

2 回答 2

16

像那样 :

byte[] buffer = new byte[4];
InputStream is = new FileInputStream("somwhere.in.the.dark");
if (is.read(buffer) != buffer.length) { 
    // do something 
}
is.close();
// at this point, the buffer contains the 4 bytes...
于 2013-01-17T15:05:42.567 回答
2

您可以使用 ByteBuffer 更改字节顺序

FileChannel fc = new FileInputStream(filename).getChannel();
ByteBuffer bb = ByteBuffer.allocate(4);
bb.order(ByteBuffer.nativeOrder()); // or whatever you want.
fc.read(bb);
bb.flip();
int n = bb.getInt();

反转整数字节的简单方法

int n = ...
int r = Integer.reverseByte(n);

相似地

long l = Long.reverseBytes(n);
于 2013-01-17T15:25:33.107 回答