2017-04-07 1 views
0

COBOL 응용 프로그램에서 작성한 이진 파일이 있습니다. 이 바이너리 파일에 대한 문서로 처음 4 바이트가 다가오는 레코드의 크기임을 나타낸다. 4 바이트 중 첫 번째와 두 번째 바이트는 레코드 길이의 이진 값이고 다음 바이트는 null 값 (예약 됨)입니다. 이것은 내가 가지고있는 유일한 입력입니다. 어떻게하면 자바 정수로 읽을 수 있을까요? 내가 자바 정수로 읽기위한 처음 4 바이 또는 2 바이를 읽어야 할까. 나는 자바 정수가 4 byes이기 때문에 혼란 스럽다.Cobol 이진 파일 읽기

COBOL 응용 프로그램에서 Java 변수로 이진 쓰기를 읽을 수 있습니까?

+1

이동할 수있다, 당신은에가는 방법 데이터가 무엇을 나타내는 지 알 수 있습니다 (RDW, 레코드 설명자 단어, 설명하는 것). "카피 북"또는 "레코드 레이아웃"이 있다면 그것을 보여주십시오. RDW의 레코드 길이 부분은 2 바이트 2 진 최대 값 32756입니다. 두 바이트 뒤에 무시할 수 있으며 데이터의 첫 번째 바이트가옵니다. 레코드 길이 (처음 2 바이트)는 RDW 길이 + 데이터 길이입니다. 귀하의 데이터는 IBM 메인 프레임에서 나옵니까? 아마도 IBM Midrange일까요? EBCDIC가 관련 될 수 있으므로 레코드 레이아웃이 중요합니다. –

+0

데이터가 base24에서옵니다. 파일은 바이너리 파일이며 10GB면입니다. 그 2 바이트에 대해서, java를 사용하여 2 바이트 만 읽고 정수로 변환 할 수 있습니까? 한 프로그래밍 언어로 작성된 이진 파일을 다른 언어로 파싱 할 수있는 방법. – Jobs

+0

프로그래밍 언어가 정수 데이터의 4 바이트를 오른쪽에서 왼쪽으로 유지하는 경우 (비트가 오른쪽에서 왼쪽으로 쓰여 있음) 고려하십시오. 동일한 프로그래밍 언어로 구문 분석되면 구문 분석 할 수 있습니다. java를 사용하여 구문 분석하면 java가 왼쪽에서 오른쪽으로 4 바이트를 읽으므로 다른 정수 값으로 끝날 수 있습니다. – Jobs

답변

0

당신은 16 비트 정수 짧은 자바를 사용하여 읽을 수있다, 또는 당신은 정수에 첫 번째 4 바이트를 읽고 것을 차치 바로 16