0

使用经典的 FileSystem API,我们可以获取带有附加参数的输出流以写入文件末尾。

这是我用来访问文件的代码:

经典文件系统 API:

boolean append = true;
File target = new File(...);
OutputStream outStream = new FileOutputStream(target, append);

SAF API:

boolean append = true;
File target = new File(...);
DocumentFile targetDocument = getDocumentFile(target, false, context);
OutputStream outStream = context.getContentResolver().openOutputStream(targetDocument.getUri());

但我在 SAF API 中没有 append 参数。

我们如何使用 SAF API 附加到文件?

4

1 回答 1

1

使用这种方法。查看 的文档mode,您可以"wa"作为模式传递以附加到任意文件。

然而"wa",这是一种复杂的模式,如文档中所述,它需要文件是可搜索的,但 ParcelFileDescriptor 仅在从 File 对象获得时才可搜索,因此只有在 Android O 支持本地存储的提供程序才能支持它时才可搜索。

两者都被引用的原因openFile()openAssetFile()在 DocumentsProvider 的源代码中,它们都委托给它们,openDocument()因此这两个文档都适用。

于 2017-04-10T04:24:40.553 回答