将大对象拆分为多个较小的字节数组

时间:2012-08-09 21:34:50

标签: java

我有一个巨大的POJO(1G - 6G),我想分成多个100Kb的字节数组。我的算法目前如下:

  1. 将大对象序列化为大字节[] I.e. 1G对象为1G字节[]
  2. 将大字节[]拆分为较小的100k字节[]
  3. 但是这会产生很大的内存压力,因为我现在有1个对象+ 1个字节[] +大约100k字节[]

    使用FileInputStream将大文件拆分成多个较小的字节数组相对容易,如下所示

    File file = new File("asd");
    FileInputStream fis = new FileInputStream(file);
    BufferedInputStream bis = new BufferedInputStream(fis);
    byte[] buffer = new byte[1024*1024*10];
    int n = -1;
    while((n = bis.read(buffer))!=-1) {
      bos.write(buffer,0,n):
    }
    

    如何为常规POJO实现相同目标?有没有办法可以迭代地将对象读入100K字节数组,而不是创建大字节数组并将其拆分?

0 个答案:

没有答案