在 Android 上随机访问写入 SAF 文件

问题描述

我正在尝试对从 Android 存储访问框架检索的流实现“随机访问”写入。

在我的场景中,我使用 OPEN_DOCUMENT 意图选择一个文件,它为我提供了一个文档 URI。然后我可以使用 ContentResolveropenOutputStream。不过,从那时起,我没有看到在流中“寻找”以在文件中的给定位置写入的方法。

有没有办法实现这一点(至少对于本地存储/基于 SD 卡的文件)?

解决方法

至少对于本地存储/基于 SD 卡的文件

你不知道这就是你得到的。用户可以选择自己想要的任何文档提供程序(例如 Google 云端硬盘)。

我没有看到在流中“寻找”以在文件中的给定位置写入的方法

部分原因是 Java 流很烂。但是,主要是为了文档提供者的灵活性。假设用户选择在本地存储其内容但由流密码加密的提供商。然后你不能只是跳到某个任意位置——数据必须一路解密。

AFAIK,您唯一的选择是将内容复制到您控制的某个文件中,然后您可以随机访问该文件。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...