리틀 엔디안 순서로 정수를 써야합니다. 그래서 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);
}
.write (버퍼)는 0을 반환하므로 잘못된 것입니까?
누군가 리틀 엔디안에서 4 바이트 정수를 쓰는 다른 방법을 알고 있습니까?
내가 올바르게 기억이 [버퍼를 플립] 필요 (http://stackoverflow.com/questions/14792968). 구아바에는 리틀 엔디 언 스트림이 있습니다. – McDowell
없음, I는 디버거 및 검사 순서가 올바른지 –
... [플립 (http://docs.oracle.com/javase/8/docs/api/java/nio/Buffer.html#flip--) endianness에 영향을 미치지 않습니다. 버퍼를 쓰기에서 읽기로 전환합니다. – McDowell