首页 / 浏览问题 / 组件GIS / 问题详情
iOjbect java 读取 DatasetVector 内存直接溢出了
11EXP 2023年09月08日

如图,直接报错了。

我用idesktopx  读取同一个文件没这个问题

iobject java 版本 11.1.0

1个回答

您好,建议换个接口进行数据读取,getAllFeatures 接口返回矢量数据集中的所有特征要素集,若当前矢量数据集的体量很大的话是可能会内存溢出的;桌面端读取数据使用的是 getRecordset 接口,可根据给定的参数来返回空的记录集或者返回包括所有记录的记录集对象,然后从 Recordset 记录集中逐行读取需要的数据,这样可有效的避免内存溢出的情况。

希望可以帮到您。
2,253EXP 2023年09月08日
我就是用的vector.getRecordset(false, CursorType.DYNAMIC).getAllFeatures();
数据量大的时候不用 getAllFeatures 这个接口,可能是我上面的回复太多了,导致您没理解我的意思,从 Recordset 逐行读取记录即可,在桌面端当数据体量较大的时候也不会选择全部数据加载,会有过滤优化显示的情况。
上个示例代码我看一下可以吗。

iObjects Java 组件的 SampleCode 示例程序集中有提供关于 Recordset 记录集的遍历逻辑,建议可以在使用接口前先学习组件示例

...