由于内存大小不足原因,现要实现解析的文件不限制大小、解析出的数据超过设定的最大数据个数为止。解析的格式为:xml,cvf ,csv中的一个。请提供一个思路。
先读取文件大小,然后分段解析,解析一段就保存结果,然后释放内存,再度趋下一段,如此循环下去,直到满足要求。
分段读取会截断一条数据,而且可能导致解析错误。
因为内存的限制,你可以采用内存映射文件的方式来创建比你物理内存大很多的数组或者对象。
你可以把arraylist等放在内存映射文件上,具体做法参考:https://www.cnblogs.com/ixenos/p/5863921.html
我是不想改解析接口,解决方法:有前人留下的其他方式实现的接口O>O,实现方式也是通过流读取的。但解析方式不同