读取前4个文件字节

时间:2013-01-17 15:01:26

标签: java

我已经习惯了C#,但我正在尝试创建一个将前4个字节读入数组的应用程序,但是我没有成功。 我还需要在文件中反转Endian,我不知道如何在Java中,在C#中它是Array.Reverse(bytes);。我已经尝试将文件读入Int32,但是从那里我无法将它变成数组。

2 个答案:

答案 0 :(得分:13)

就像那样:

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...

答案 1 :(得分:1)

您可以使用ByteBuffer更改Endianness

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);