Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 尝试使用SAF写入可序列化对象会产生一个空文件_Android_Storage Access Framework - Fatal编程技术网

Android 尝试使用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

我想使用SAF来编写对象文件

如果我尝试编写文本文件,请执行以下操作:

    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过程来编写它,它的编写是正确的)