问题描述
我正在尝试对从 Android 存储访问框架检索的流实现“随机访问”写入。
在我的场景中,我使用 OPEN_DOCUMENT
意图选择一个文件,它为我提供了一个文档 URI。然后我可以使用 ContentResolver
到 openOutputStream
。不过,从那时起,我没有看到在流中“寻找”以在文件中的给定位置写入的方法。
有没有办法实现这一点(至少对于本地存储/基于 SD 卡的文件)?
解决方法
至少对于本地存储/基于 SD 卡的文件
你不知道这就是你得到的。用户可以选择自己想要的任何文档提供程序(例如 Google 云端硬盘)。
我没有看到在流中“寻找”以在文件中的给定位置写入的方法
部分原因是 Java 流很烂。但是,主要是为了文档提供者的灵活性。假设用户选择在本地存储其内容但由流密码加密的提供商。然后你不能只是跳到某个任意位置——数据必须一路解密。
AFAIK,您唯一的选择是将内容复制到您控制的某个文件中,然后您可以随机访问该文件。