我正在编写一个分析股市数据的工具。为此,我下载数据,然后将对应于库存的所有数据保存为我的高清data.bin中的double[][]
20 * 100000数组,我知道我应该将它放在某个数据库中,但这只是性能明智最好的方法。
现在这是我的问题:我需要做更新并搜索数据: 更新:随着时间的推移,我必须将新数据附加到数组的末尾。 搜索:我想迭代不同的数据文件以找到最小值或计算移动平均值等。
我可以通过读取整个文件来完成它们并更新它的写入或在特定区域进行搜索......但这有些过度,因为我不需要整个数据。
所以我的问题是:是否有一个库(用Java)或类似的东西打开/读取/更改二进制文件的部分而不必打开整个文件?或者从特定点开始搜索文件?
答案 0 :(得分:0)
RandomAccessFile允许搜索文件中的特定位置并更新文件的某些部分或向末尾添加新数据而无需重写所有内容。请参阅此处的教程:http://docs.oracle.com/javase/tutorial/essential/io/rafs.html
答案 1 :(得分:0)
您可以尝试查看随机存取文件:
教程:http://docs.oracle.com/javase/tutorial/essential/io/rafs.html
API:http://docs.oracle.com/javase/6/docs/api/java/io/RandomAccessFile.html
...但您仍需要确定要在二进制文件中读取的确切位置。
您可能需要考虑迁移到数据库,可能是像H2这样的小型嵌入式数据库(http://www.h2database.com)