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