如何重写文档文件
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();
我想让用户选择文件夹,我的应用程序将在此文件夹中创建一个文件。所以我使用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();