Github user afs commented on a diff in the pull request:
https://github.com/apache/jena/pull/427#discussion_r192794317
--- Diff: jena-base/src/main/java/org/apache/jena/atlas/io/IO.java ---
@@ -77,10 +81,28 @@ static public InputStream openFileEx(String filename)
throws IOException, FileNo
filename = IRILib.decode(filename) ;
}
InputStream in = new FileInputStream(filename) ;
- if ( filename.endsWith(".gz") )
- in = new GZIPInputStream(in) ;
+ String ext = FileOps.extension(filename);
+ switch ( ext ) {
+ case "": return in;
+ case "gz": return new GZIPInputStream(in) ;
+ case "bz2": return new BZip2CompressorInputStream(in);
+ case "sz": return new SnappyCompressorInputStream(in);
+ }
return in ;
}
+
+ private static String[] extensions = { ".gz", ".bz2", ".sz" };
+
+ /** The filename without any compression extension, or the original
filename.
+ * It tests for compression types handled by {@link #openFileEx}.
+ */
+ static public String filenameNoCompression(String filename) {
+ for ( String ext : extensions ) {
+ if ( filename.endsWith(ext) )
+ return filename.substring(0,
filename.length()-ext.length());
+ }
+ return filename;
+ }
--- End diff --
Done.
---