だからここに私の機能があります:
public void writeUserToFile() {
File newXmlFile = new File("res\\SavedShoppers.xml");
try {
ArrayList<User> oldUsers = null;
if(newXmlFile.length() > 0){
oldUsers = buildUsersFromFile(); // get old users
// remove current user from old users list to eliminate duplicates
for (int i = 0; i < oldUsers.size(); i++) {
if (oldUsers.get(i).equals(this))
oldUsers.remove(i);
}
}
OutputStream outputStream = new FileOutputStream(newXmlFile);
XMLStreamWriter out = XMLOutputFactory.newInstance()
.createXMLStreamWriter(
new OutputStreamWriter(outputStream, "utf-8"));
out.writeStartDocument();
out.writeStartElement("user");
out.writeAttribute("userId", String.valueOf(getUserId()));
out.writeAttribute("name", getName());
for (ShoppingList sl : getShoppingLists()) {
out.writeStartElement("shoppingList");
out.writeAttribute("name", sl.getName());
for (ListItem li : sl.getItems()) {
out.writeStartElement("listItem");
out.writeAttribute("name", li.getName());
out.writeAttribute("quantity",
String.valueOf(li.getQuantity()));
out.writeEndElement();
}
out.writeEndElement(); // shoppingList
}
out.writeEndElement(); // user
out.writeEndDocument();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
だから私が達成しようとしているのは、ユーザーを XML ファイルに保存して後で引き出すことです。これは非常にシンプルな買い物リスト アプリで、買い物をするときにカートを作成して、買い物をしながら買い物を合計するのに役立ちます。ここに私が得ているエラーがあります:
java.lang.NoClassDefFoundError:javax/xml/stream/XMLOutputFactory
私がデバッグすると、この行で起こっています:
XMLStreamWriter out = XMLOutputFactory.newInstance().createXMLStreamWriter(new OutputStreamWriter(outputStrem, "utf-8"))
そして、私は何が間違っているのかわかりません...私はこれに数日間取り組んでいるので、アイデアがありません...どんな助けや方向性も素晴らしいでしょう!
ありがとう!ジョン