2011-08-18 40 views
0

首先:请参阅我的问题Reading XML online and Storing It (Using Java)。阅读已批准的答案和该答案下的评论。将XML文件保存到正在运行的Android项目

所以,我的问题在这里:尽管我已经运行了链接问题中描述的过程,并且.xml文件保存到我的Android应用中的/ res/values文件夹中,但它并未显示在所有 - 不是当我运行应用程序时,也不是在关闭应用程序之后。

有没有人有关于如何解决这个问题的任何想法,以便当我生成文件时,即使在应用程序正在运行时,它也将立即可用,以供读取和使用?

+0

如何在应用程序包中的res/value文件夹中写入文件? – user370305

+0

如果你看看我的问题中的链接代码,我实现了批准的答案代码,并将文件目录更改为“/ Users/csatbu/Documents/workspace/Employee App/res/values/employeeInfo.xml”,其中是我的应用程序(Employee App)/ res/value文件夹中的目录。 – Mxyk

+0

为什么你把XML文件放在你的应用程序的数据/数据/文件目录中? – user370305

回答

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(); 
    } 
} 

和你可以在处看到您的xml文件文件夹Thnx。希望这会帮助你。

+0

我对这里有点困惑的唯一的东西是“你的xml文件名.xml”和“你的源文件”下的内容。如果我从网址拉下xml,是否应该在“您的xml文件名.xml”下输入“http:// www .....”?如果是这样,我应该把什么放在“你的源文件”下? – Mxyk

+0

fOut = this.openFileOutput(“your xml file name.xml”,MODE_PRIVATE);你的xml文件name.xml是在data/data/packagename/file文件夹下创建的文件的名称,意思是输出文件名。并且InputStream = new FileInputStream(“你的源文件”);您的源文件意味着您想从网上读取并写入应用程序包的文件。您可以在inputstream中转换文件然后使用它,或者如果文件已经存在于设备的外部存储中,则使用其文件路径。对不起,让我们回答。 – user370305

1

如果您正在Java中或实际上在您的Android应用程序中运行XML解析,我并非100%确定。

如果您使用的是Java,请注意您的项目结构不在模拟器中 - 在运行之前,.apk已打包并安装。在应用程序可以看到文件之前,您需要使用adb将文件推入模拟器(或您的Android设备)。

如果您正在访问应用程序中的文件: 如果您使用诸如openFileOutput()之类的文件访问方法,它将显示在设备上的专用目录中,这将是/ data/data // files/

但是,如果你使用“新建文件(”而非“context.openFileOutput”,那么该文件是无论你把它。

相关问题