将 SPARQL 的结果写入 java 中的文件
write result of SPARQL to file in java
我在 java 中使用 fuseki 服务器作为嵌入式服务器,我使用以下代码获得 SPARQL 结果:
public static void execSelectAndPrint(FileWriter fw, String serviceURI, String query) throws IOException {
QueryExecution q = QueryExecutionFactory.sparqlService(serviceURI,query);
ResultSet results = q.execSelect();
ResultSetFormatter.outputAsCSV(System.out, results);
while (results.hasNext()) {
QuerySolution soln = results.nextSolution();
RDFNode x = soln.get("x");
System.out.println(x);
fw.append(x.toString());
}
fw.close();
}
它正确地将结果打印到控制台,但它可以写入文件。我想将 SPARQL 查询的结果写入 csv 文件。
Java Writer
s 会产生字符转换问题,这就是 API 更喜欢 OutputStream
的原因,因此使用 FileOutputStream
会起作用。
否则,使用ByteArrayOutputStream
输出为字节,转换为字符串并写入字符串。
但要注意字符集。大多数 SPARQL 相关格式都是 UTF-8,而不是平台本机字符集。
我在 java 中使用 fuseki 服务器作为嵌入式服务器,我使用以下代码获得 SPARQL 结果:
public static void execSelectAndPrint(FileWriter fw, String serviceURI, String query) throws IOException {
QueryExecution q = QueryExecutionFactory.sparqlService(serviceURI,query);
ResultSet results = q.execSelect();
ResultSetFormatter.outputAsCSV(System.out, results);
while (results.hasNext()) {
QuerySolution soln = results.nextSolution();
RDFNode x = soln.get("x");
System.out.println(x);
fw.append(x.toString());
}
fw.close();
}
它正确地将结果打印到控制台,但它可以写入文件。我想将 SPARQL 查询的结果写入 csv 文件。
Java Writer
s 会产生字符转换问题,这就是 API 更喜欢 OutputStream
的原因,因此使用 FileOutputStream
会起作用。
否则,使用ByteArrayOutputStream
输出为字节,转换为字符串并写入字符串。
但要注意字符集。大多数 SPARQL 相关格式都是 UTF-8,而不是平台本机字符集。