关于解析不确定大小的文件

由于内存大小不足原因,现要实现解析的文件不限制大小、解析出的数据超过设定的最大数据个数为止。解析的格式为:xml,cvf ,csv中的一个。请提供一个思路。

4个回答

先读取文件大小,然后分段解析,解析一段就保存结果,然后释放内存,再度趋下一段,如此循环下去,直到满足要求。

因为内存的限制,你可以采用内存映射文件的方式来创建比你物理内存大很多的数组或者对象。
你可以把arraylist等放在内存映射文件上,具体做法参考:https://www.cnblogs.com/ixenos/p/5863921.html

stonefeng
疯癫行者 这个方法也是很好的。
一年多之前 回复

分段读取会截断一条数据,而且可能导致解析错误。

stonefeng
疯癫行者 java所有对文件的操作都是流操作。所以还要看你用什么语言。流还是要用的。
一年多之前 回复
stonefeng
疯癫行者 看你的文件多大,根据情况。中等尺寸文件的顺序读入则没有必要使用内存映射以避免占用本就有限的I/O资源,这时应当使用带缓冲的输入流。
一年多之前 回复
stonefeng
疯癫行者 那要看你分段的方法对不对了,分段不是随便分的。
一年多之前 回复

我是不想改解析接口,解决方法:有前人留下的其他方式实现的接口O>O,实现方式也是通过流读取的。但解析方式不同

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问