을 변경하는 방법 엔디안할 때 작성된 CDR 스트림을 포함하는 객체를 변환 Java
-
18-09-2019 - |
문제
나는 마샬링 CDR 데이터 자체적으로 모든 형태의 파일이(즉,포장에 GIOP 메시지)에 필요 unmarshal 와 화면에 표시합니다.내가 어떤 유형의 데이터가와 작동 코드를 이렇게 성공적으로 다음과 같다:
ValueFactory myFactory = (ValueFactory)myConstructor.newInstance( objParam );
StreamableValue myObject = myFactory.init();
myObject._read( myCDRInputStream );
는 init()호출을 생성자의 myObjectImpl().과 read 은 org.omg.CORBA.휴대용.스트리밍 read(InputStream)방법입니다.
이 작품으로 마샬링 데이터를 동 엔디안으로 실행되는 컴퓨터 내 reader 프로그램이지만 내가 필요로 할 것이를 처리하는 경우 엔디안의 데이터를 다른 엔디안 실행하는 컴퓨터의 리더입니다.내가 알고 있는 엔디안에서 GIOP 메시지는 내가 없습니다.가정하면 나는 그 밖으로 나가 필요로 하는 변경하 엔디안,어떻게 알 수 있는 이 스트림 리더입니까?
감사합니다!
해결책
액세스하는 경우 기본 ByteBuffer
의 입력 스트림,그리고 다음 설정할 수 있습니다 엔디안.예를 들어 내가 사용하는 이 열어 matlab 을 파일을 자신
File file = new File("swiss_roll_data.matlab5");
FileChannel channel = new FileInputStream(file).getChannel();
ByteBuffer scan = channel.map(MapMode.READ_ONLY,0,channel.size());
scan.order(ByteOrder.BIG_ENDIAN);
그러나,내가 알고 있는 경우 corba 프레임워크는 행복에서 읽을의 bytebuffer(corba 록을 재생하면 90ies).그래서 어쩌면 작동하지 않습니다.
제휴하지 않습니다 StackOverflow