0

我正在编写一个分析股市数据的工具。为此,我下载数据,然后将与股票对应的所有数据作为double[][]20*100000 数组保存在我的 hd 上的 data.bin 中,我知道我应该把它放在某个数据库中,但这只是性能方面最好的方法。

现在这是我的问题:我需要对数据进行更新和搜索: 更新:随着时间的推移,我必须将新数据附加到数组的末尾。搜索:我想遍历不同的数据文件以找到最小值或计算移动平均值等。

我可以通过读取整个文件并更新它写入或在特定区域进行搜索来完成这两个操作......但这有点矫枉过正,因为我不需要整个数据。

所以我的问题是:是否有一个库(在 Java 中)或类似于打开/读取/更改二进制文件的部分而不必打开整个文件的东西?或者从特定点开始搜索文件?

4

2 回答 2

0

RandomAccessFile 允许查找文件中的特定位置并更新文件的某些部分或在末尾添加新数据,而无需重写所有内容。请参阅此处的教程:http: //docs.oracle.com/javase/tutorial/essential/io/rafs.html

于 2013-02-10T10:49:46.927 回答
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)这样的小型嵌入式数据库

于 2013-02-10T10:50:41.287 回答