을 변경하는 방법 엔디안할 때 작성된 CDR 스트림을 포함하는 객체를 변환 Java

StackOverflow https://stackoverflow.com/questions/1881175

문제

나는 마샬링 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).그래서 어쩌면 작동하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top