jena 从压缩文件中读取输入流

jena read inputstream from gzipped file

我有以下代码可以使用输入流将数据集读入 jena 模型,但是我希望我的程序也能够读取压缩(gzipped)文件(使用 filePath)。

Dataset dataset = TDBFactory.createDataset(tdbPath);
Model model = dataset.getDefaultModel();
InputStream str = FileManager.get().open(filePath);
model.read(str,null, "N-TRIPLES");  

您需要创建一个 GZIPInputStream 才能读取它

Dataset dataset = TDBFactory.createDataset(tdbPath);
Model model = dataset.getDefaultModel();
InputStream str = FileManager.get().open(filePath);
if (useGZIP) {
   str = new GZIPInputStream(str);
}
model.read(str,null, "N-TRIPLES");  

如果您使用较新的 RDFDataMgr API,那么 GZip 压缩应该完全透明地处理:

RDFDataMgr.read(model, filePath, Lang.NTRIPLES);