使用 APACHE JENA 自动检测文件扩展名
Auto-Detect File Extension with APACHE JENA
我想将任何文件扩展名转换为 .ttl (TURTLE),并且我需要使用 Apache Jena,我知道如何使用 RDFJ4 完成它,但输出不如使用 Jena 准确.我想知道如果我在从目录中读取文件时不知道扩展名,如何自动检测扩展名或文件类型。这是我对文件名进行硬编码时的代码,它有效,我只需要帮助自动检测文件类型。我的代码如下:
public class Converter {
public static void main(String[] args) throws FileNotFoundException {
String fileName = "./abc.rdf";
Model model = ModelFactory.createDefaultModel();
//I know this is how it is done with RDF4J but I need to use Apache Jena.
/* RDFParser rdfParser = Rio.createParser(Rio.getWriterFormatForFileName(fileName).orElse(RDFFormat.RDFXML));
RDFWriter rdfWriter = Rio.createWriter(RDFFormat.TURTLE,
new FileOutputStream("./"+stripExtension(fileName)+".ttl"));*/
InputStream is = FileManager.get().open(fileName);
if (is != null) {
model.read(is, null, "RDF/XML");
model.write(new FileOutputStream("./converted.ttl"), "TURTLE");
} else {
System.err.println("cannot read " + fileName);
}
}
}
我们将不胜感激所有帮助和建议。
有处理使用扩展名确定语法的文件读取的功能:
RDFDataMgr.read(model, fileName);
它还可以处理压缩文件,例如"file.ttl.gz".
有一个语言注册表:
RDFLanguages.fileExtToLang(...)
RDFLanguages.filenameToLang(...)
有关更多控制,请参阅 RDFParser
:
RDFParser.create().
source(FileName)
... many options including forcing the language ...
.parse(model);
我想将任何文件扩展名转换为 .ttl (TURTLE),并且我需要使用 Apache Jena,我知道如何使用 RDFJ4 完成它,但输出不如使用 Jena 准确.我想知道如果我在从目录中读取文件时不知道扩展名,如何自动检测扩展名或文件类型。这是我对文件名进行硬编码时的代码,它有效,我只需要帮助自动检测文件类型。我的代码如下:
public class Converter {
public static void main(String[] args) throws FileNotFoundException {
String fileName = "./abc.rdf";
Model model = ModelFactory.createDefaultModel();
//I know this is how it is done with RDF4J but I need to use Apache Jena.
/* RDFParser rdfParser = Rio.createParser(Rio.getWriterFormatForFileName(fileName).orElse(RDFFormat.RDFXML));
RDFWriter rdfWriter = Rio.createWriter(RDFFormat.TURTLE,
new FileOutputStream("./"+stripExtension(fileName)+".ttl"));*/
InputStream is = FileManager.get().open(fileName);
if (is != null) {
model.read(is, null, "RDF/XML");
model.write(new FileOutputStream("./converted.ttl"), "TURTLE");
} else {
System.err.println("cannot read " + fileName);
}
}
}
我们将不胜感激所有帮助和建议。
有处理使用扩展名确定语法的文件读取的功能:
RDFDataMgr.read(model, fileName);
它还可以处理压缩文件,例如"file.ttl.gz".
有一个语言注册表:
RDFLanguages.fileExtToLang(...)
RDFLanguages.filenameToLang(...)
有关更多控制,请参阅 RDFParser
:
RDFParser.create().
source(FileName)
... many options including forcing the language ...
.parse(model);