繁体   English   中英

如何重写DocumentFile

[英]How to rewrite DocumentFile

我想让用户选择文件夹,我的应用程序将在此文件夹中创建一个文件。 所以我用Intent.ACTION_OPEN_DOCUMENT_TREE Google说我需要使用DocumentFile而不是File。 以前我使用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。

先感谢您。

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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM