我知道这个问题之前已经被问到并在这里得到了解答,但我的是一个特例,我还没有找到答案。
我有100,000到一百万个int
类型的数组,其'固定'长度为32 ^ 3,我需要将这些数组存储在一个文件中,而不需要迭代它们。
我知道有可能使用ObjectOutputStream,我甚至找到了如何将多个对象写入单个文件并将其读回(这可能听起来像是解决了我的问题)但不是,它没有。
我的实际问题是我需要向该文件添加/更新单个数组,并且还要读取单个数组。整个数组最多可能有10个数组在一秒钟内被修改,所以我需要将更改写入该文件,而无需重写整个文件,因为这是缓慢而低效的方法。
所以我的问题:是否可以将固定长度的int
数组保存到包含许多相同长度的int
数组的文件中?并从该文件中读取特定的int
数组?无需在阅读或写作时遍历每个数组?
答案 0 :(得分:0)
您可以使用RandomAccessFile
如果您的数组具有固定长度,那么您可以将RandomAccessFile视为大型数组并将位置计算为index_of_array_you_need * array_size + index_of_the_element_in_array
您的数组大小将是32768 * 4字节,因此如果您需要更新位置100的第3个数组中的数字,您应该从RandomAccessFile获取4个字节,地址为2 * 32768 * 4 + 100 * 4