2015-03-04 2 views
0

При попытке чтения из файла XML я получаю java.io.FileNotFoundException /employee.xml: open failed ENOENT (No such file or directory).java.io.FileNotFoundException /employee.xml: open failed ENOENT (Нет такого файла или каталога) в файле read

Class, чтобы создать свой файл XML:

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(); 
    } 
    } 
} 

Класс для чтения из моего файла XML и добавить в него:

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); 
    } 
} 

ответ

1

предаю вас на попытку английского языка. Mais, je parle le Francais aussi.

Vous devez utiliser

File f = new File("employee.xml"); 
f.createNewFile(); 

авангард уоиз utilisez Вос программа. Vous n'avez pas un fichier pour ecriver. Донк, vous devez le creer.

+0

bonjour merci de votre repense, donc tout cella avant méme de faire appel a Fileauv.lance(); , car ca a marché dans un projet java c'est la methode lance de filesauv qui s'occupe de le crée. –

+0

Hmm, essayez un autre dossier dans 'StreamResult file = new StreamResult (новый файл (" employee.xml "));' comme 'Файл StreamResult = новый StreamResult (новый файл (Context.getFilesDir()," employee.xml ")); ' – llamositopia

+0

C'est bon merci je l'ai resolut j'ai caremment mis le chemin brute du fichier bref, maintenent je dois envoyer mon fichie depuis l'applyatio. Android vers une application serveur avec des сокеты tout ca sur mon ordinateur cad l'emulateur et l'appli java, je sais pas si vous pouvez m'orienté? , merci pour votre repence. –

Смежные вопросы