如何使用存储访问框架来获取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)
答案 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
rw
或rwt
并使用wa