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

发布于 2024-11-07 07:43:52 字数 769 浏览 5 评论 0原文

我有许多压缩字符串(每个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 将压缩文件映射到内存中,并在内存压缩文件(我听说这可能可以实现,但我不知道是不是真的)

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

有人知道实现上述选项的方法吗?或者有更好的方法吗,非常感谢。

I have a number of compressed String(1.5M each) stored in a file. I need to read them out, and do some computation on them. Basically, here is what I did:

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

The only problem is, the performance of the code is quite slow in general, so I am thinking 2 options:

  1. to use NIO to map the compressed file into memory, and do the above on the memory compressed file(I heard that this may be achievable, but I have no idea if it really is)

  2. Instead of storing objects, I could just store binary compressed version of the text and then read the text, I heard that it may be fast then ObjectInputStream.

Anyone knows a way of achieving the above options? or is there a better way, thanks a lot.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浪漫之都 2024-11-14 07:43:52

您可能对使用 DeflatorOutputStream 和 InflatorInputStream 感兴趣,请参阅快速压缩Java?

You might be interested in using DeflatorOutputStream and InflatorInputStream see Fast compression in Java?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文