2017-04-07 85 views
0

我有一个由COBOL应用程序编写的二进制文件。关于这个二进制文件的文件指出前4个字节是即将到来的记录的大小。在4个字节中,第1个和第2个字节是记录长度的二进制再现,接下来的2个字节是空值(保留)。这是我拥有的唯一输入。我怎样才能读入一个java整数。我应该阅读前4个脚趾还是只读2个脚本来读取java整数。我很困惑,因为在java中,整数是4个字节。Cobol二进制文件读取

是否有可能从COBOL应用程序中读取二进制写入到java变量中。

+1

撇开的是,你怎么来知道数据代表什么(而不是RDW,记录描述符词,这就是你所描述的)?如果您有“副本”或“记录布局”,请显示它。 RDW的记录长度部分是一个两字节的二进制最大值32756.其后是两个字节,您可以忽略,然后是数据的第一个字节。记录长度(前两个字节)是RDW的长度+数据的长度。您的数据来自IBM大型机?可能是IBM的中端? EBCDIC可能会涉及,这就是为什么记录布局很重要。 –

+0

数据来自base24。该文件是二进制文件,并且是10 GB的一面。关于这2个字节,是否可以只读取2个字节并使用java?转化为整数。用另一种编程语言编写的二进制文件如何解析。 – Jobs

+0

考虑编程语言是否从右向左保持其整数数据的4个字节(这些位是从右向左书写的)。如果它被相同的编程语言解析,那么它可以解析它。如果使用java解析相同的数据,我们可能会以不同的整数值结束,因为java将从左到右读取4个字节。 – Jobs

回答

0

你可以在使用Java短,这是一个16位整数读它,或者你可以阅读的头四个字节转换成整数和右移16