Android写入CSV RAM问题

时间:2016-04-22 06:28:01

标签: java android csv android-sqlite android-external-storage

我正在服务中收集一堆传感器数据,将其存储到SQL表中,当用户单击一个按钮时,我将所有SQL数据保存到CSV文件中,但我一直在{在logcat中显示错误<1}}

通过谷歌搜索,我认为这可能是由于我的Nexus 5x的RAM使用率很高?

当用户单击“保存”按钮时,开始该过程的代码如下所示:

Window is full: requested allocation XXX

然后在我的DBHelper中,File subjectFile = new File(subjectDataDir, subNum + ".csv"); try{ dbHelper.exportSubjectData(subjectFile, subNum); } catch (SQLException | IOException e){ mainActivity.logger.e(getActivity(), TAG, "exportSubjectData error", e); } 方法如下所示:

exportSubjectData

首先,这种问题通常是由RAM使用引起的吗?

假设我的问题是代码段中的RAM使用率很高,有没有更有效的方法来做到这一点而不消耗这么多内存?它试图写入CSV的表有超过300,000行和10列

1 个答案:

答案 0 :(得分:0)

我猜你正在使用opencsv。您可以尝试在csvWrite.flush()的每次x调用后调用csvWrite.writeNext(arrStr)。这应该将数据从内存写入光盘。 你必须尝试x的最佳值。