我有一些存储在文件中的压缩字符串(每个1.5M)。我需要读出它们,并对它们进行一些计算。基本上,这就是我所做的:
public static Object fetchRSFB(File inFile) {
FileInputStream fis = null;
ObjectInputStream ois = null;
GZIPInputStream gs = null;
Object result = null;
try {
fis = new FileInputStream(inFile);
gs = new GZIPInputStream(fis);
ois = new ObjectInputStream(gs);
MyBWT.rankArray = (int[]) ois.readObject();
String str= (String) ois.readObject();
//do something with the string
唯一的问题是,代码的性能一般都很慢,所以我在想2个选项:
使用NIO将压缩文件映射到内存中,并在内存压缩文件上执行上述操作(我听说这可能是可以实现的,但我不知道它是否真的存在)
< / LI>我可以只存储文本的二进制压缩版本,然后读取文本,而不是存储对象,我听说它可能比ObjectInputStream快。
任何人都知道实现上述选择的方法吗?还是有更好的方法,非常感谢。