有没有办法从java

时间:2017-02-16 05:58:12

标签: java serialization deserialization

我想将属于不同类的对象存储在单个内存映射文件中。 从文件中读取是否有任何方法来了解对象类型。

内存映射文件是否仅用于单个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 :(得分:0)

如果您创建一个自定义方法来序列化您的对象,您可以包括开始和结束字节或某种格式到您编写的内容。然后,知道它是如何编写的,您可以创建一种方法来读取该特定格式的文件。当然,这需要比仅使用标准Java序列化库更多的工作。