XML 转换 FileNotFoundException
XML Transform FileNotFoundException
我正在使用 LibGDX 创建游戏,我想创建一个 XML 文件以便保存一些配置设置。
我希望文件位于另一个目录 (assets/xml/ajustes.xml)
的 assets 文件夹中
如果我将游戏作为桌面应用程序执行,它运行正常,如果 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(RELATIVE_PATH_TO_ASSETS)
通过使用此方法,您将获得一个 FileHandle,其中包含您要使用的文件。
Click here 访问 libGDX.
中文件处理的 wiki 页面
要保存用户数据,您可能需要改用首选项。
您可以超级轻松地保存和加载用户首选项
https://github.com/libgdx/libgdx/wiki/Preferences
它将为您管理 XML 文件
也就是说,更一般地说,要加载文件,您可以使用 Gdx.files.internal(RELATIVE_PATH_TO_ASSETS)
我正在使用 LibGDX 创建游戏,我想创建一个 XML 文件以便保存一些配置设置。
我希望文件位于另一个目录 (assets/xml/ajustes.xml)
的 assets 文件夹中如果我将游戏作为桌面应用程序执行,它运行正常,如果 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(RELATIVE_PATH_TO_ASSETS)
通过使用此方法,您将获得一个 FileHandle,其中包含您要使用的文件。
Click here 访问 libGDX.
中文件处理的 wiki 页面要保存用户数据,您可能需要改用首选项。 您可以超级轻松地保存和加载用户首选项
https://github.com/libgdx/libgdx/wiki/Preferences
它将为您管理 XML 文件
也就是说,更一般地说,要加载文件,您可以使用 Gdx.files.internal(RELATIVE_PATH_TO_ASSETS)