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