Android 尝试使用SAF写入可序列化对象会产生一个空文件
我想使用SAF来编写对象文件 如果我尝试编写文本文件,请执行以下操作:Android 尝试使用SAF写入可序列化对象会产生一个空文件,android,storage-access-framework,Android,Storage Access Framework,我想使用SAF来编写对象文件 如果我尝试编写文本文件,请执行以下操作: DocumentFile txtfile=df.createFile("text", "myfile.txt"); Uri source = txtfile.getUri(); resolver = getContentResolver(); OutputStream os = resolver.openOutputStream(source); PrintWriter out = n
DocumentFile txtfile=df.createFile("text", "myfile.txt");
Uri source = txtfile.getUri();
resolver = getContentResolver();
OutputStream os = resolver.openOutputStream(source);
PrintWriter out = new PrintWriter(new OutputStreamWriter(os));
out.print(somestring);
out.flush();
out.close();
文件已正确创建和写入
但是,如果我尝试以类似的方式编写一个可序列化的
对象,而不是使用此代码编写一个字符串:
DocumentFile serialfile=df.createFile("unspecified", "myserializable");
Uri source = serialfile.getUri();
resolver = getContentResolver();
OutputStream os = resolver.openOutputStream(source);
ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(os));
out.writeObject(someserializable);
out.flush();
out.close();
文件创建正确,但它是完全空的,不管可序列化
对象是否确实有效(如果我尝试使用传统的FileOutputStream
方法而不是上面的SAF过程来编写它,它的编写是正确的)