如何使用 Java 解压缩 COMP 数字?

Posted

技术标签:

【中文标题】如何使用 Java 解压缩 COMP 数字?【英文标题】:How to unpack COMP digits using Java? 【发布时间】:2020-04-29 05:55:53 【问题描述】:

我发现这个link 对于解压的 COMP-3 数字很有用,但是这次我需要解压 COMP 数字,有人知道如何解压吗?非常感谢!

【问题讨论】:

【参考方案1】:

在大多数 Cobol 编译器中,Comp 是一个大端二进制整数。对于大型机,仅支持 2/4/8 字节。所以对于有符号值

  03  Signed-Num     pic s9(4) comp.

如果你有一个字节数组中的值,你可以这样做

BigInteger value = new BigInteger(byteArray);

您也可以使用DataInputStream

readShort()readInt()readLong()方法

最后JRecord 会让你用 Cobol 字帖阅读 Cobol 文件

【讨论】:

【参考方案2】:

IBM 提供 Java 方法库以简化与 z/OS 服务和数据格式的交互。可以在这里找到概述jZOS Toolkit

这是PackedDecimal Operations的链接

这里有其他用于管理二进制数据的ByteArrayUnmarshaller

【讨论】:

以上是关于如何使用 Java 解压缩 COMP 数字?的主要内容,如果未能解决你的问题,请参考以下文章

如果使用struct.pack(fmt,v1,v2,...)在python打包,如何在cpp中解压缩数字

如何在 ruby​​ 中解压缩大于 64 位的数字?

如何使用 Java 压缩/解压缩文件夹及其所有文件和子目录?

如何最好地压缩此文件夹,以便可以使用 Java 以最小的工作空间解压缩

搭建Java环境如何解压缩

如何解决rar文件解压缩失败