java.io.FileNotFoundException /employee.xml: open failed ENOENT (No such file or directory) on file read
j'ai besoin de récupérer le path de mon application pour y ecrire et lire un fichier xml car apparament j'ecris dans la racine :(
ma classe qui ecrit le fichier xml qui contient que la racine application:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| public class Filesauv {
public static void lance() {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
try {
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
//add elements to Document
Element rootElement =
doc.createElementNS("http://www.journaldev.com/application", "Applications");
//append root element to document
doc.appendChild(rootElement);
//for output to file, console
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
//for pretty print
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
//write to console or file
StreamResult console = new StreamResult(System.out);
StreamResult file = new StreamResult(new File("employee.xml"));
//write data
transformer.transform(source, console);
transformer.transform(source, file);
System.out.println("DONE");
} catch (Exception e) {
e.printStackTrace();
}
}
} |
et ma classe qui lie ce fichier et qui lui ajoute un element :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| public class ModifyXMLDOM extends MainActivity {
public static void lance(){
String filePath = "employee.xml";
File xmlFile = new File(filePath);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
try {
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);
doc.getDocumentElement().normalize();
//add new element
addElement(doc);
//write the updated document to file or console
doc.getDocumentElement().normalize();
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("employee.xml"));
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform(source, result);
System.out.println("XML file updated successfully");
} catch (SAXException | ParserConfigurationException | IOException | TransformerException e1) {
e1.printStackTrace();
}
}
private static void addElement(Document doc) {
NodeList employees = doc.getElementsByTagName("Applications");
Element emp = null;
//loop for each employee
emp = (Element) employees.item(0);
Element appliElement = doc.createElement("application");
Element serviceElement1 = doc.createElement("messagerie");
Element serviceElement2 = doc.createElement("repertoire");
Element serviceElement3 = doc.createElement("calculatrice");
Element serviceElement4 = doc.createElement("calendrier");
serviceElement1.appendChild(doc.createTextNode(m));
serviceElement2.appendChild(doc.createTextNode(re));
serviceElement3.appendChild(doc.createTextNode(ca));
serviceElement4.appendChild(doc.createTextNode(cale));
appliElement.appendChild(serviceElement1);
appliElement.appendChild(serviceElement2);
appliElement.appendChild(serviceElement3);
appliElement.appendChild(serviceElement4);
emp.appendChild(appliElement);
}
} |