2
我必須以小端順序編寫一個整數。所以我創建了一個類(這個類沒有擴展任何東西),它帶有一個FileChannel屬性和一些寫入方法。FileChannel不會寫任何東西
但有一個問題:只有一種方法可行,其他不行!
這裏的工作方法(DIS是FileChannel):
public void writeBuffer(ByteArrayOutputStream t) throws IOException
{
ByteBuffer buffer=ByteBuffer.wrap(t.toByteArray());
dis.write(buffer);
}
這是寫方法不起作用一個:
public void writeInt(int t) throws IOException
{
ByteBuffer buffer=ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN);
buffer.putInt(t);
dis.write(buffer);
}
我調試的程序和DIS .write(buffer)返回0,那有什麼問題?
有沒有人知道在小端編寫4字節整數的替代方法?
如果我記得正確,你需要[翻轉緩衝區](http://stackoverflow.com/questions/14792968)。番石榴有一些小端流。 – McDowell
不,我檢查了調試器,命令是正確的... –
[flip](http://docs.oracle.com/javase/8/docs/api/java/nio/Buffer.html#flip-- )不影響字節順序 - 它將緩衝區從寫入切換到讀取。 – McDowell