1

私のJavaアプリケーションのヒープで約15GBを占めるオブジェクトがあり、JVMを再起動する間は永続化する必要があります。 ObjectOutputStreamのwriteObjectメソッドを使用して、ディスク上のファイルに書き出します。書き込みプロセスは非常に長く(数分)、いくつかのGCの問題を引き起こすので、私はオブジェクトを分割して、それぞれの部分を別々のファイルに保存し、1つのファイルに対して単一のアクションではないようにしたいと思います。 これを行う方法はありますか(もちろん、必要なときにファイルから取り戻す方法)?大きなオブジェクトをファイルに分割する前に分割する

 FileOutputStream fos = null; 
     GZIPOutputStream gos = null; 
     ObjectOutputStream oos = null; 
     try { 
      fos = new FileOutputStream("some_path"); 
      gos = new GZIPOutputStream(fos); 
      oos = new ObjectOutputStream(gos); 
      oos.writeObject(myLargeObject); 
      oos.flush(); 
      gos.close(); 
      fos.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

答えて

0

答えはthisです。分割されたファイルを再構成する逆のプロセスは、個々のファイルから読み取り、「マスター」ファイルに追加することに過ぎません。

関連する問題