【问题标题】:java.io.FileNotFoundException /employee.xml: open failed ENOENT (No such file or directory) on file readjava.io.FileNotFoundException /employee.xml:读取文件时打开失败的 ENOENT(没有这样的文件或目录)
【发布时间】:2015-05-05 13:33:33
【问题描述】:

我在尝试读取 XML 文件时收到 java.io.FileNotFoundException /employee.xml: open failed ENOENT (No such file or directory)

创建我的 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);
    }
}

【问题讨论】:

    标签: java android xml dom readfile


    【解决方案1】:

    我赞扬你尝试的英语。 Mais, je parle le Francais aussi。

    Vous devez utiliser

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

    avant vous utilisez vos 程序。 Vous n'avez pas un fichier pour ecriver。 Donc, vous devez le creer。

    【讨论】:

    • bonjour merci de votre repense, donc tout cella avant meme de faire appel a Filesauv.lance(); ,car ca a marché dans un projet java c'est la methode lance de filesauv qui s'occupe de le crée。
    • 嗯,essayez un autre dossier dans StreamResult file = new StreamResult(new File("employee.xml")); comme StreamResult file = new StreamResult(new File(Context.getFilesDir(), "employee.xml"));
    • C'est bon merci je l'ai resolut j'ai caremment mis le chemin brute du fichier bref,维护 je dois envoyer mon fichie depuis l'applicio。 Android 与 une 应用程序服务器 avec des sockets tout ca sur mon ordinateur cad l'emulateur et l'appli java ,je sais pas si vous pouvez m'orienté? ,谢谢你的忏悔。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多