将 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 文件并将其保存到内部存储

如何将xml文件保存在我想要的目录中(android studio)[关闭]

OS X 数据文件编辑器保存到 XML:是不是基于文档?

将 XML 文件保存到磁盘

Xml 不保存到文件

将文本文件保存到 sd 卡