我在我的代码中使用 Netica Java 库读取贝叶斯网络,输入结果,并将更新的贝叶斯网络保存在字节数组中。字节数组保存得非常好(据我所知),但我似乎无法使用 ByteArrayInputStream 将其加载回。
我的代码是:
Environ env = new EnvironI( null );
ByteArrayInputStream bais = new ByteArrayInputStream( myBinaryData );
bais.close();
Net model = new Net( new Streamer( bais, "templateFile.neta", env );
它在最后一行失败,并出现以下错误:
stderr: norsys.netica.NeticaException:
************** E R R O R ***************
** ErrorNumber = 2734
** ErrorSeverity = ERROR_ERR
** ErrorCategory =
** ErrorMessage = In function Net(Streamer inStream) constructor: buffer to decompress gzip 'internal' is too small (is 3082 but -981804177 needed)
请注意,这里有 Netica 库的特定应用。我还应该注意,这在我的 OSX 机器上运行良好,但在 Linux 机器上似乎中断了。
有任何想法吗?