E.g。有一些应用程序(在我的src控件之外)生成成千上万个序列化的Map实例,存储为/ dev / shm / {some Map-ID} .ser。它们使用普通的旧java.io. *包进行序列化。
这里的代码(可以在我的src控件中进行反序列化Map实例)是否可以从使用NIO而不是普通的旧java.io. *包中受益?或者,从理论上讲,假设这些IO操作都在/ dev / shm上,那么任何NIO优势都可以忽略不计吗?
private Map<Integer,String> deserializeMapFrKernelSHM(String shmKey) {
Map<Integer,String> retM = null;
try {
FileInputStream frKernelSHM = new FileInputStream("/dev/shm/"+shmKey+".ser");
ObjectInputStream in = new ObjectInputStream(frKernelSHM);
retM = (Map<Integer,String>) in.readObject();
System.out.println("Linux IPC shmop(GET) de-serialized Map<K,V> from /dev/shm/"+shmKey+".ser");
}catch (Exception e) {
e.printStackTrace();
}
return(retM);
}
答案 0 :(得分:0)
不是真的。将对象序列化与NIO结合起来几乎是不可能的。
您可以在FileInputStream周围尝试BufferedInputStream。