0

protege3.xで作成されたOWL'ressu.owl'ファイルでSparqlにクエリを実行しました。このために、結果セットをJTextAreaのような使用可能なものに変換するように指示する必要があります。ResultSetFormatter()

私はこのようにそれを使用します

ResultSetFormatter.out(System.out, results, query) ;

そしてそれは私にNetbeansのコンソールでこの結果を与えます:

ここに画像の説明を入力してください

しかし、System.outをStringに戻そうとすると::

com.hp.hpl.jena.query.ResultSet results = qe.execSelect();
ResultSetFormatter.out(System.out, results, query) ;
ByteArrayOutputStream go = new ByteArrayOutputStream ();
ResultSetFormatter.out((OutputStream)go ,results, query);
String result = go.toString();
jTextArea1.setText(result);

JtextAreaでのみ表示されます

---------------------------------------------------------------
| hasnamefonctioncontrainte        | hasnamefonctionprincipale 
===============================================================

どうもありがとう

4

2 に答える 2

2

resultイテレータです。

あなたはそれをで印刷しました

ResultSetFormatter.out(System.out, results, query) ;

これで、イテレータと2番目の呼び出しが終了しました。

ResultSetFormatter.out((OutputStream)go ,results, query);

そのポイント(最後)から反復するため、行はありません。

ResultSetFactory.copyResults巻き戻すことができる(または単に印刷しない)結果セットを取得してみてください。

于 2013-03-09T18:23:33.673 に答える
0

それはあなたがそれをすべきだった方法ではありません。
次の方法で、ByteArrayOutputStreamをラップするPrintStreamを作成することをお勧めします。

ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);

次に、プリントストリームを「out」の呼び出しに渡します。

ResultSetFormatter.out(ps, results, query) ;

次に、バイト配列の出力ストリームから文字列を作成してみます。

String s = new String(baos.toByteArray(), "UTF-8");

そして実行します

System.out.println(s);
于 2013-03-09T16:38:10.277 に答える