Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android XML转换文件NotFoundException_Android_Xml_Libgdx_Directory_Filenotfoundexception - Fatal编程技术网

Android XML转换文件NotFoundException

Android XML转换文件NotFoundException,android,xml,libgdx,directory,filenotfoundexception,Android,Xml,Libgdx,Directory,Filenotfoundexception,我正在使用LibGDX创建一个游戏,我想创建一个XML文件,以便保存一些配置设置 我希望该文件位于assets文件夹中的另一个目录(assets/xml/ajustes.xml)中 如果我以桌面应用程序的形式执行游戏,它可以正常工作,如果XML目录不存在,则创建它,然后在其中创建XML文件。当我在Android设备上执行游戏时,问题就来了。我得到一个例外: javax.xml.transform.TransformerException: java.io.FileNotFoundExceptio

我正在使用LibGDX创建一个游戏,我想创建一个XML文件,以便保存一些配置设置

我希望该文件位于assets文件夹中的另一个目录(assets/xml/ajustes.xml)中

如果我以桌面应用程序的形式执行游戏,它可以正常工作,如果XML目录不存在,则创建它,然后在其中创建XML文件。当我在Android设备上执行游戏时,问题就来了。我得到一个例外:

javax.xml.transform.TransformerException: java.io.FileNotFoundException: /xml/datos.xml (No such file or directory)
我想不出问题出在哪里

这是我写的:

public static final String localizacionXML = "xml/datos.xml";

...

try {

        //THE xml DIRECTORY SHOULD BE CREATED HERE
        File dir = new File("xml");
        dir.mkdirs();

        File f = new File(localizacionXML);

        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

        //IF XML ALREADY EXISTS
        if(f.exists() && !f.isDirectory()) {
            ...
        }else{
            DocumentBuilderFactory docFactory = 
            DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

            Document doc = docBuilder.newDocument();

            ...

            TransformerFactory transformerFactory = 
            TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            DOMSource source = new DOMSource(doc);
            StreamResult result = new StreamResult(new 
                File(localizacionXML).getAbsolutePath());

            //EXCEPTION HERE
            transformer.transform(source, result);
        }
}catch (Exception e){
    e.printStackTrace();
}

要使用相对路径访问资产文件夹中的文件,必须使用Gdx.files.internal(相对路径到资产)

通过使用此方法,您将获得一个文件句柄,它保存您要使用的文件


要访问libGDX中文件处理的wiki页面。

要保存用户数据,您可能需要使用首选项。 您可以超级轻松地保存和加载用户首选项

它将为您管理XML文件

也就是说,更一般地说,要加载文件,您可以使用Gdx.files.internal(相对路径到资源)