Android: 在API 29中从现有的URI中覆盖文件
创始人
2024-10-06 01:29:53
0

在Android API 29中,您可以使用ContentResolverDocumentFile类来覆盖现有的文件。以下是一个代码示例:

// 获取要覆盖的文件的URI
Uri fileUri = ...;

// 获取文件的DocumentFile对象
DocumentFile documentFile = DocumentFile.fromSingleUri(context, fileUri);

// 获取文件的父目录的DocumentFile对象
DocumentFile parentDocumentFile = documentFile.getParentFile();

// 创建要覆盖的文件的新DocumentFile对象
String newFileName = "new_file_name.txt";
DocumentFile newDocumentFile = parentDocumentFile.createFile(null, newFileName);

// 打开新文件的输出流
OutputStream outputStream = context.getContentResolver().openOutputStream(newDocumentFile.getUri());

// 将新文件的内容写入输出流,这里假设您有一个输入流来读取文件的内容
InputStream inputStream = ...;
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
    outputStream.write(buffer, 0, bytesRead);
}

// 关闭输入输出流
inputStream.close();
outputStream.close();

// 删除原始文件
documentFile.delete();

上述代码中,我们首先使用DocumentFile.fromSingleUri()方法获取要覆盖的文件的DocumentFile对象。然后,我们使用getParentFile()方法获取文件的父目录的DocumentFile对象。

接下来,我们使用createFile()方法在父目录中创建一个新的文件,并传递null作为MIME类型来覆盖现有文件。

然后,我们打开新文件的输出流,并使用输入流从原始文件中读取内容,并将其写入输出流中。

最后,我们关闭输入输出流,并使用delete()方法删除原始文件。

请注意,您需要根据自己的需求修改代码中的部分,例如替换fileUrinewFileName变量。

相关内容

热门资讯

德州ai辅助!aapoker插... 德州ai辅助!aapoker插件(透视)从来真的是有挂(详细辅助解密教程)是一款可以让一直输的玩家,...
wepoke有没有挂!wepo... 您好,wepoke有没有挂这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩...
wepoke模拟器!德扑之星内... wepoke模拟器!德扑之星内部(透视)真是是有挂(详细辅助曝光教程)1、许多玩家不知道wepoke...
微扑克辅助软件!wpk辅助nz... 微扑克辅助软件!wpk辅助nzt(透视)好像是真的有挂(详细辅助详细教程)1)微扑克辅助软件辅助挂:...
aapoker辅助工具!轰趴十... aapoker辅助工具!轰趴十三水有后台吗(透视)切实真的是有挂(详细辅助新版2025教程)是一款可...
微扑克有辅助挂!德扑ai自定义... 微扑克有辅助挂!德扑ai自定义设置数据(透视)其实真的有挂(详细辅助解密教程)是一款可以让一直输的玩...
德州之星有辅助挂!扑克世界牌局... 德州之星有辅助挂!扑克世界牌局设置(透视)一直存在有挂(详细辅助曝光教程)是一款可以让一直输的玩家,...
wpk德州透视辅助!aa po... wpk德州透视辅助!aa poker辅助软件(透视)一贯存在有挂(详细辅助透明教程);小薇(透视辅助...
aapoker透明挂!鱼扑克f... 自定义aapoker透明挂系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,...
wpk有透视辅助!德州ai辅助... wpk有透视辅助!德州ai辅助工具购买(透视)原先真的有挂(详细辅助存在挂教程)1、wpk有透视辅助...