private static Reader createCompressReader()

in hugegraph-loader/src/main/java/org/apache/hugegraph/loader/reader/file/FileLineFetcher.java [250:281]


    private static Reader createCompressReader(InputStream stream,
                                               FileSource source)
            throws Exception {
        Compression compression = source.compression();
        String charset = source.charset();
        switch (compression) {
            case NONE:
                return new InputStreamReader(stream, charset);
            case SNAPPY_RAW:
                Configuration config = new Configuration();
                CompressionCodec codec = ReflectionUtils.newInstance(SnappyCodec.class, config);
                CompressionInputStream sis = codec.createInputStream(stream,
                                                                     codec.createDecompressor());
                return new InputStreamReader(sis, charset);
            case GZIP:
            case BZ2:
            case XZ:
            case LZMA:
            case SNAPPY_FRAMED:
            case Z:
            case DEFLATE:
            case LZ4_BLOCK:
            case LZ4_FRAMED:
                CompressorStreamFactory factory = new CompressorStreamFactory();
                CompressorInputStream cis =
                        factory.createCompressorInputStream(compression.string(), stream);
                return new InputStreamReader(cis, charset);
            default:
                throw new LoadException("Unsupported compression format '%s'",
                                        compression);
        }
    }