Я новичок в сегментарной сети. Я пытаюсь записать результаты запроса описания SPARQL в файл. Я получаю одну строчку снова и снова. может кто-нибудь помочь мне решить эту проблему.
Если выбрать лучший вариант, пожалуйста, сообщите мне об этом.
public void getResourceDescription(String rname){
String desptstring = "Prefix dbo: <http://dbpedia.org/resource/>\n" +
"Describe ?r where{" +
" <"+rname+"> ?r ?o." +
"}";
Writer writer = null;
Query des_query = QueryFactory.create(desptstring);
QueryExecution des_Exe = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", des_query);
try {
Model model = des_Exe.execDescribe();
//model = (Model) set;
//ResultSet description_result = des_Exe.execSelect();
StringWriter strwrt = new StringWriter();
//for ( ; description_result.hasNext() ; ) {
//QuerySolution res = description_result.nextSolution();
Abbreviated abb = new Abbreviated();
abb.write(model, strwrt, null);
//System.out.println(res);
File file = new File("D:\\newfile.txt");
file.createNewFile();
Files.write(Paths.get("D:\\newfile.txt"), strwrt.toString().getBytes(), StandardOpenOption.APPEND);
// }
}
catch (Exception e) {
e.printStackTrace();
}
finally {
des_Exe.close();
}
} // ending of the GetResourceDescription Method
Кстати, документация все прекрасно объясняет.




это должно быть
model.write(...)- и имя файла не должно называться.txt, учитывая, что содержимое является RDF ... в зависимости от формата сериализации (RDF / XML, N-Triples, ...) вы должны использовать рекомендуемое расширение файла. Например. для N-Triples это.nt