将 XML 文件保存到正在运行的 Android 项目
Posted
技术标签:
【中文标题】将 XML 文件保存到正在运行的 Android 项目【英文标题】:Saving XML files to a Running Android Project 【发布时间】:2011-08-18 18:29:30 【问题描述】:首先:看我的问题Reading XML online and Storing It (Using Java)。阅读批准的答案以及该答案下方的 cmets。
所以,我的问题是:即使我已经完成了链接问题中描述的过程,并且 .xml 文件保存到我的 android 应用程序的 /res/values 文件夹中,但它根本没有显示- 不是在我运行应用程序时,也不是在我关闭应用程序后。
是否有人对如何解决此问题有任何想法,以便在我生成文件时,即使在应用程序运行时,它也可以立即读取和使用?
【问题讨论】:
如何在应用包的res/value文件夹中写入文件? 如果您在我的问题中说明的链接中查看我的代码,我实现了已批准答案的代码并将文件目录更改为“/Users/csatbu/Documents/workspace/Employee App/res/values /employeeInfo.xml",这是我的应用程序(员工应用程序)/res/value 文件夹中的目录。 为什么不将 xml 文件放在应用程序的 data/data/file 目录中? 【参考方案1】:只需使用此代码,
FileOutputStream fOut = null;
try
fOut = this.openFileOutput("your xml file name.xml", MODE_PRIVATE);
try
InputStream is = new FileInputStream("your source file");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
fOut.write(buffer);
catch(Exception e)
e.printStackTrace();
catch (FileNotFoundException e)
e.printStackTrace();
finally
try
fOut.close();
catch (IOException e)
e.printStackTrace();
您可以在 data/data/packagename/file
文件夹 Thnx 中看到您的 xml
文件。希望这会对你有所帮助。
【讨论】:
我在这里唯一有点困惑的是“你的 xml 文件名.xml”和“你的源文件”下的内容。如果我从 url 中提取 xml,我应该在“您的 xml 文件名.xml”下输入http://www.....
吗?如果是这样,我应该在“你的源文件”下放什么?
fOut = this.openFileOutput("你的 xml 文件名.xml", MODE_PRIVATE);您的 xml 文件 name.xml 是将在 data/data/packagename/file 文件夹中创建的文件的名称,表示输出文件名。而 InputStream 是 = new FileInputStream("your source file");您的源文件是指您要从 Web 读取并写入应用程序包的文件。您可以在输入流中转换文件然后使用它,或者如果文件已经在设备的外部存储中,则使用其文件路径。抱歉让我们回答。【参考方案2】:
我不能 100% 确定您是在 Java 中还是在您的 Android 应用中运行 XML 解析。
如果您使用 Java 运行,请注意您的项目结构不在模拟器中 - .apk 在运行之前已打包并安装。您需要使用 adb 将文件推送到模拟器(或您的 Android 设备)中,然后您的应用才能看到文件。
如果您在应用程序中访问文件: 如果您使用诸如 openFileOutput() 之类的文件访问方法,它将显示在设备上的私有目录中,即 /data/data//files/
但是,如果您使用的是“new File(”而不是“context.openFileOutput”,那么文件就在您放置的任何位置。
【讨论】:
以上是关于将 XML 文件保存到正在运行的 Android 项目的主要内容,如果未能解决你的问题,请参考以下文章
Java / Android - 读取、操作 XML 文件并将其保存到内部存储