Hallo,
ich habe ein Programm geschrieben welches eine XML-Datei benutzt um paar kleine Daten abzuspeichern. Nun wollte ich das Programm als JAR-Datei exportieren und ich musste natürlich den Pfad zur XML-Datei ändern, damit das Programm auch in einer JAR-Datei funktioniert.
Hier ein Ausschnitt aus meinem Programm:
Vorher:
Nachher:
Nun kann die XML-Datei gelesen werden, aber nach dem Modifizieren des DOM-Trees muss ja natürlich die Datei wieder geschrieben werden, jedoch weiß ich nicht, wie das geht. Ich habe natürlich auch gegoogelt, fand aber keine passende Lösung.
Hier die Problemstelle:
Vorher:
Nachher:
Noch keine Lösung gefunden
Ich verstehe ja, wie das beim Lesen funktioniert, da kann man ja mit getResourceAsStream() ein Objekt der Klasse InputStream als Parameter an die Methode parse() vom DocumentBuilder übergeben (wenn ich das richtig verstanden habe). Aber ich verstehe nicht, wie man das Gleiche halt nur für ein OutputStream machen kann.
LG
Kenta1561
ich habe ein Programm geschrieben welches eine XML-Datei benutzt um paar kleine Daten abzuspeichern. Nun wollte ich das Programm als JAR-Datei exportieren und ich musste natürlich den Pfad zur XML-Datei ändern, damit das Programm auch in einer JAR-Datei funktioniert.
Hier ein Ausschnitt aus meinem Programm:
Vorher:
Java:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
doc = builder.parse(new File("/main/scripts/list.xml"));
Java:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
doc = builder.parse(Watchlist.class.getClassLoader().getResourceAsStream("main/scripts/watchlist.xml"));
Nun kann die XML-Datei gelesen werden, aber nach dem Modifizieren des DOM-Trees muss ja natürlich die Datei wieder geschrieben werden, jedoch weiß ich nicht, wie das geht. Ich habe natürlich auch gegoogelt, fand aber keine passende Lösung.
Hier die Problemstelle:
Vorher:
Java:
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult sr = new StreamResult(new File("/main/scripts/list.xml"));
transformer.transform(source, sr);
Noch keine Lösung gefunden
Ich verstehe ja, wie das beim Lesen funktioniert, da kann man ja mit getResourceAsStream() ein Objekt der Klasse InputStream als Parameter an die Methode parse() vom DocumentBuilder übergeben (wenn ich das richtig verstanden habe). Aber ich verstehe nicht, wie man das Gleiche halt nur für ein OutputStream machen kann.
LG
Kenta1561