android:快速处理压缩字符串的方法

时间:2011-05-15 09:52:07

标签: android performance text io nio

我有一些存储在文件中的压缩字符串(每个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个选项:

  1. 使用NIO将压缩文件映射到内存中,并在内存压缩文件上执行上述操作(我听说这可能是可以实现的,但我不知道它是否真的存在)

    < / LI>
  2. 我可以只存储文本的二进制压缩版本,然后读取文本,而不是存储对象,我听说它可能比ObjectInputStream快。

  3. 任何人都知道实现上述选择的方法吗?还是有更好的方法,非常感谢。

1 个答案:

答案 0 :(得分:1)

您可能有兴趣使用DeflatorOutputStream and InflatorInputStream查看Fast compression in Java?