以前は、xstreamを介してUTF-8エンコーディングでXMLを読み取るために、次のようにDomDriverを使用しています。
XStream xStream = new XStream(new DomDriver("UTF-8"));
しかし、後で私はこれが非常に遅いことに気付きます。私は次の方法を使用します:
これは少なくとも正常に機能します。
しかし、後で、同じ手法をXMLの記述に適用できないことに気付きました。私はすべてを取得します??? 文字。
これは、書き込み中にDomDriverを使用して実行可能な最後のコードです
public static boolean toXML(Object object, File file) {
XStream xStream = new XStream(new DomDriver("UTF-8"));
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(file);
xStream.toXML(object, outputStream);
}
catch (Exception exp) {
log.error(null, exp);
return false;
}
finally {
if (false == close(outputStream)) {
return false;
}
outputStream = null;
}
return true;
}
上記のコードは正常に機能します。DomDriverを使用しないreadメソッドと一致させるために、コードを次のように変更します。
public static boolean toXML(Object object, File file) {
XStream xStream = new XStream();
OutputStream outputStream = null;
Writer writer = null;
try {
outputStream = new FileOutputStream(file);
writer = new OutputStreamWriter(outputStream, Charset.forName("UTF-8"));
xStream.toXML(object, outputStream);
}
catch (Exception exp) {
log.error(null, exp);
return false;
}
finally {
if (false == close(writer)) {
return false;
}
if (false == close(outputStream)) {
return false;
}
writer = null;
outputStream = null;
}
return true;
}
今回は、漢字がすべて???に変わります。
間違ったことを教えてもらえますか?