使用java和RDF模型从文件读写
我想从一个文件中读取,然后使用java将其写入另一个文件中的RDF/XML模型中, 我已经完成了读取文件的初始部分,但我不知道如何使用RDF/XML模型将其写入另一个文件中,因此我可以获得正确的格式 以下是读取文件代码的一部分:使用java和RDF模型从文件读写,java,jena,rdf-xml,Java,Jena,Rdf Xml,我想从一个文件中读取,然后使用java将其写入另一个文件中的RDF/XML模型中, 我已经完成了读取文件的初始部分,但我不知道如何使用RDF/XML模型将其写入另一个文件中,因此我可以获得正确的格式 以下是读取文件代码的一部分: try { File file1 = new File("Data/960.txt"); FileReader fileReader1 = new FileReader(file1); BufferedReader bufferedRea
try {
File file1 = new File("Data/960.txt");
FileReader fileReader1 = new FileReader(file1);
BufferedReader bufferedReader1 = new BufferedReader(fileReader1);
StringBuffer stringBuffer = new StringBuffer();
String line1;
System.out.println("Proteins & Synonyms:");
int count = 0;
while ((line1=bufferedReader1.readLine()) != null) {
String[] list1 = line1.split("\t");
if (list1.length < 2) continue;
proteinG=model2.createResource(ProtURI+list1[0]);
hasSynonyms=model2.createProperty(SynoURI+hasSynonymStr);
Synonyms=list1[1];
proteinG.addProperty(hasSynonyms,Synonyms);
System.out.println(stringBuffer.toString());
} catch (IOException e) {
e.printStackTrace();}
if(model2!=null){
model2.write(System.out, "RDF/XML");
试试看{
File file1=新文件(“Data/960.txt”);
FileReader fileReader1=新的FileReader(file1);
BufferedReader bufferedReader1=新的BufferedReader(fileReader1);
StringBuffer StringBuffer=新的StringBuffer();
字符串行1;
System.out.println(“蛋白质和同义词:”);
整数计数=0;
而((line1=bufferedReader1.readLine())!=null){
字符串[]list1=line1.split(“\t”);
如果(列表1.length<2)继续;
proting=model2.createResource(ProtURI+list1[0]);
hasSynonyms=model2.createProperty(SynoURI+hasSynonymStr);
同义词=列表1[1];
proteinG.addProperty(hasSynonyms,同义词);
System.out.println(stringBuffer.toString());
}捕获(IOE异常){
e、 printStackTrace();}
if(model2!=null){
model2.write(System.out,“RDF/XML”);
任何人都可以帮助您写入
文件输出流
而不是System.out。您可能需要“RDF-XML-ABBREV”来美化输出
作为一般性的改进,将RDFDataMgr
与Lang.RDFXML
一起使用(默认情况下,这是漂亮的表单):
现在对于Java,这意味着使用try资源块:
import org.apache.jena.riot.RDFDataMgr
import org.apache.jena.riot.Lang
...
Model model = null;
try(OutputStream out = new FileOutputStream("filename.rdf")) {
RDFDataMgr.write(out, model, Lang.RDFXML);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
最后考虑:使用Turtle,而不是RDF/XML;它更容易阅读。我应该也使用try and catch吗?@GHA可能缺少导入?。请看编辑后的答案我这么做了,我想这是从代码本身开始的,我现在正试图弄清楚,漂亮形式的RDF/XML是最昂贵的格式。请看:漂亮形式的RDF/XML是最昂贵的格式格式。见: