【问题标题】:How to use Android Internal Storage?如何使用安卓内部存储?
【发布时间】:2012-10-08 06:40:11
【问题描述】:

我是 java 初学者,我正在构建一个 android 应用程序。

我想要一个包含文本的 xml 文件。 每当服务器发送更新时,我都想更改该文件中的某些行(我的意思是更新是通过擦除已经写入的文本的某些部分并替换为更新来更改该文件中的某些行)

我对创建、写入或读取文件一无所知。 当我搜索时,我发现内部存储最适合我。

但我不知道我是否必须在任何目录中手动创建一个 xml 文件,或者只使用下面的代码自动创建这个文件?

    // If this is the first time run,execute one time code
    // create XML Internal store 

    String FILENAME = "My_XML_file";
    try{
        FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_APPEND);
    } catch (final IOException e) {
        e.printStackTrace();
    }

提前谢谢你!

【问题讨论】:

标签: java android xml


【解决方案1】:

-首先在Manifest.xml文件中给出External Storage permission

-你可以使用JAXP & JAXB,甚至CASTOR来更好地处理XML,但DOMSAX仍然是Android内置的。

  • 你可以使用这样的东西

    String s = "/sdcard/Myfolder/mytext.txt";

    File f = new File(s);

【讨论】:

  • @Kumar Vivek Mitra 如果我使用内部存储,为什么要使用外部存储权限?
  • 不确定 /sdcard 目录是否存在
【解决方案2】:

您拥有的代码将在内部存储中创建一个文件,但您需要更多的代码才能轻松创建和维护 XML 文件。 我建议你使用 Build in Android DOM Parser (Android developers site docs on XML Parse options)

我发现了这个example,它解释了如何使用 dom 解析器从代码构建一个特定的(新的)XML 文件。在您创建输出流的上下文中:

StreamResult result = new StreamResult(new File("C:\\file.xml"));

您可能希望根据上面创建的输出流使用其他构造函数

StreamResult result = new StreamResult(fos);

以类似的方式,此 DOM 库允许您使用 DocumentBuilder.parse() 从输入流(您可能从 android openFileInput 获取)中读取数据

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多