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 に答える