如何访问Android中的内部存储

时间:2015-08-06 15:27:24

标签: android internal-storage

我想将通过Android应用程序生成和修改的.docx文件存储到android手机的内部存储中(如果有帮助的话,所有相同型号的手机)。我已经加载了模板(位于应用程序中)并修改了字段,但是我阻止了如何保存文件。

我正在使用docx4j,它有一个保存方法:

private void writeDocxToStream(WordprocessingMLPackage template,
        String target) throws IOException, Docx4JException {
            File f = new File(target);
            template.save(f);
}

我已尝试过其他更多"手册"方式,但我总是有同样的问题:

目标目录的输入应该是什么?

外部存储似乎很容易,但对于内部存储而言,这是其他的东西。

当我只是尝试在test.txt中输出一个String时,然后使用经典的BufferedReaderInputStreamReaderFileInputStream方式获取其中的String,我可以& #39; t得到这些信息。

关于这个主题的信息非常分散,我在下午阅读了大约数千种实现存储的方法,但没有一个与我的问题相对应。

我已在我的清单中设置<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />只是为了确定,但它并没有改变任何内容。

此外,也许它与问题有关,我无法在我的测试设备(可以运行应用程序的三星Galaxy 5S)上访问文件(来自设备或计算机),我似乎有除了几个xml和txt文件之外,所有文件夹中都没有任何文件...(但是,在执行以下操作时我仍然没有得到:在EditText中写入 - 存储在文件中 - 在.txt中保存文件 - 检索字符串 - 视图textView中的字符串。

这非常重要,因为我必须在创建它们之后检索.docx文件以供进一步使用。

感谢您的回答,如果我能提供更多信息,请告诉我,我知道我的问题还不清楚。

2 个答案:

答案 0 :(得分:0)

  

外部存储似乎很容易,但对于内部存储而言,这是其他的东西。

要写入external storage,您可以使用双参数File构造函数,在该构造函数中提供指向外部存储上某个根位置的File对象,例如:

new File(getExternalFilesDir(null), target);

要写入internal storage,您可以使用双参数File构造函数,在该构造函数中,您可以提供指向内部存储上某个根位置的File对象,例如:

new File(getFilesDir(), target);

答案 1 :(得分:0)

如果您将文件写入应用程序的私人内部存储空间,则不必持有权限android.permission.WRITE_EXTERNAL_STORAGE

在您的代码中,通过电话

context.getDir("testfile", Context.MODE_WORLD_READABLE)).getPath().toString()+"/test.docx";

文件将写入路径

/data/data/com.yourpackage.name/app_testfile/test.docx

如果写入操作成功,您可以使用上面的路径读取和检索文件的内容。