如何使用android存储访问框架附加到文件?

时间:2019-01-04 15:35:56

标签: android storage-access-framework

如何使用存储访问框架来获取FileOutputStream追加到文件?以下代码将覆盖文件

void write(Uri uri){
        try {
            ParcelFileDescriptor descriptor=getContentResolver().openFileDescriptor(uri,"w");
            if(descriptor!=null) {
                FileOutputStream op=new FileOutputStream(descriptor.getFileDescriptor());
                op.write("test string".getBytes());
                op.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

我知道使用FileOutputStream(File file,boolean append)使用java.io.File

但是我看不到FileOutputStream(FileDescriptor fd,boolean append)

2 个答案:

答案 0 :(得分:1)

如果要追加到文件,则需要在此调用中使用访问模式“ wa” 代替“ w”:

ParcelFileDescriptor descriptor =
    getContentResolver().openFileDescriptor(uri, "w");

答案 1 :(得分:1)

不是从

创建FileOutputStream

FileOutputStream op = new FileOutputStream(descriptor.getFileDescriptor());

您可以使用

直接获取OutputStream

context.getContentResolver().openOutputStream(yourUri, "wa");

并提供以下模式w wa rwrwt 并使用wa

附加现有文件