I exported a greenfoot file as a jar file, and now it can't write to the xml file. It worked before we exported it but in JAR format it doesn't work. Help.
import org.w3c.dom.*;
import javax.xml.*;
import javax.xml.transform.*;
import javax.xml.parsers.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import java.io.File;
/**
* Write a description of class SaveData here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class SaveData {
public static void addMoney(int money) {
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse("./SaveData.xml");
Element udata = doc.getDocumentElement();
udata.normalize();
Node mnode = udata.getElementsByTagName("money").item(0);
int mony = Integer.parseInt(mnode.getTextContent())+money;
mnode.setTextContent(""+mony);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("./SaveData.xml"));
transformer.transform(source, result);
} catch(Exception e) { e.printStackTrace(); }
}
public static void saveHat(String hat) {
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse("./SteamPowered.jar/SaveData.xml");
Element udata = doc.getDocumentElement();
udata.normalize();
NodeList hats = udata.getElementsByTagName(hat);
if(hats.getLength() == 0 && !hat.equals("NoHat")) {
Element xhat = doc.createElement(hat);
xhat.appendChild(doc.createTextNode("true"));
udata.appendChild(xhat);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("./SaveData.xml"));
transformer.transform(source, result);
}
} catch(Exception e) { e.printStackTrace(); }
}
public static int getMoney() {
int money = 0;
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse("./SaveData.xml");
Element udata = doc.getDocumentElement();
udata.normalize();
Node mnode = udata.getElementsByTagName("money").item(0);
money = Integer.parseInt(mnode.getTextContent());
} catch(Exception e) { e.printStackTrace(); }
return money;
}
public static boolean getHat(String key) {
NodeList hats;
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse("./SaveData.xml");
Element udata = doc.getDocumentElement();
udata.normalize();
hats = udata.getElementsByTagName(key);
} catch(Exception e) { e.printStackTrace(); return false; }
if(hats.getLength() == 0) {
return false;
}
return true;
}
}