2017-02-16 11 views
0

異なるクラスに属するオブジェクトを1つのメモリマップファイルに保存します。 ファイルから読み込み中にオブジェクトタイプを知る方法があります。Javaのメモリマップファイルからオブジェクトタイプを取得する方法はありますか?

メモリマップされたファイルは、単一のJavaクラスに対してのみ使用されていますか?あなたは、オブジェクトをシリアル化するためのカスタムメソッドを作成する場合は

try {  
    RandomAccessFile memoryMappedFile = new RandomAccessFile(file,mode);  
    long fileSize = memoryMappedFile.length();  
    System.out.println("file size " + fileSize);  
    FileChannel fc = memoryMappedFile.getChannel();  
    System.out.println("Chaannel size" + fc.size());  
    MappedByteBuffer outBuffer = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());  
    List<MemoryMappedFile> list = new ArrayList<MemoryMappedFile>();  
    while(outBuffer.hasRemaining()) {  
     MemoryMappedFile mf = new MemoryMappedFile(outBuffer.getLong(), outBuffer.getInt(), outBuffer.getDouble());   
     list.add(mf);  
    } 
    fc.close(); 
    memoryMappedFile.close(); 
} 
+1

あなたはあなたが探しているものとすでに行っていることについてより詳細を提供する必要があります。今は、あなたが何を意味し、何をしようとしているかに応じて、「オブジェクトタイプを知る」ための何百もの異なる答えが存在する可能性があります。 –

+0

ご迷惑をおかけして申し訳ありません。私は必要な詳細を与えると思っているコードを追加しました。 @ErwinBolwidt –

+0

不要なスペースが削除されました –

答えて

0

あなたはバイトまたはあなたが書くものに特定のフォーマットを開始および終了含めることができます。それがどのように書かれているのかを知ることで、その特定のフォーマットのファイルを読む方法を作ることができます。もちろん、標準のJavaシリアル化ライブラリを使用するよりも多くの作業が必要になります。

関連する問題