繁体   English   中英

如何用Java处理压缩数据

[英]How to process compressed data in Java

我有一些数据在一个未压缩的文件中占用了超过50MB的数据,但是使用gzip压缩到不到一半的MB。

其中大部分是数字数据。 我试图弄清楚如何处理这些数据而不必完全解压缩它。 例如,如果此数据包含几个字符串以及每个记录5个左右的数值,那么有没有办法我可以解压缩一行(或一小组行),然后对其进行处理,然后将其丢弃?

Unix提供了诸如zcatgrep等实用程序,这些实用程序可以直接对压缩数据进行操作,我想在Java中做同样的事情。

谢谢

只需将FileInputStream包装在GZipInputStream

public static BufferedReader createReader (File f, String encoding) throws IOException
{
    try
    {
        InputStream in = new FileInputStream (f);
        if (f.getName ().endsWith (".gz"))
            in = new GZIPInputStream (in, 10240);

        return new BufferedReader (new InputStreamReader (in, encoding));
    }
    catch (UnsupportedEncodingException e)
    {
        throw new RuntimeException("Missing encoding "+encoding, e);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM