我想让用户拿起文件夹,我的应用程序将在此文件夹中创建一个文件。所以我使用Intent.ACTION_OPEN_DOCUMENT_TREE。谷歌说我需要使用DocumentFile而不是文件。之前我使用的是File,希望得到的结果与下面的代码结果类似
FileOutputStream fs = new FileOutputStream(mFile);
Writer writer = new BufferedWriter(new OutputStreamWriter(fs));
writer.append(mContent);但是DocumentFile不是文件,我不能使用FileOutputStream。所以我用OutputStream写了这段代码
Uri treeUri = data.getData();
DocumentFile pickedDir = DocumentFile.fromTreeUri(MainActivity.this, treeUri);
DocumentFile mFile = pickedDir.createFile("text/plain", "Note");
OutputStream out = getContentResolver().openOutputStream(mFile.getUri());
out.write(infos.get(i).getContent().getBytes());
out.flush();
out.close();这段代码没有重写我的文件,但创建了另一个名称为Note(1)的文件,所以我想知道是否有一种方法可以使用OutputStream重写文件,或者使用FileOutputStream重写文件,但我不知道如何在DocumentFile中使用它。
提前谢谢你。
发布于 2018-08-15 18:30:23
Uri treeUri = data.getData();
DocumentFile pickedDir = DocumentFile.fromTreeUri(MainActivity.this, treeUri);
DocumentFile documentFile = pickedDir.findFile("Note");
if (documentFile == null)
documentFile = pickedDir.createFile("text/plain", "Note");
OutputStream out = getContentResolver().openOutputStream(documentFile.getUri());
out.write(infos.get(i).getContent().getBytes());
out.flush();
out.close();https://stackoverflow.com/questions/51855122
复制相似问题