你在那里做的是
OutputStream f1 = new FileOutputStream("file2.txt");
Object data = intent.getExtras().get("data")
f1.write(data);
那是行不通的,因为OutputStream
只知道如何写入byte
和byte[]
数据。
你可以做的事情:
- 通过 放置数据
putByteArray(String key, byte[] value)
并通过 检索数据getByteArray (String key)
。该数据可以写入文件。仅当数据很小时,此选项才是一个好主意。通过 an 传输大文件Intent
不起作用。
- 使用
ContentProvider
/ContentResolver
并使用openInputStream(Uri uri)
您Uri
放入Intent
. 那Uri
应该在intent.getData()
.
- 将源文件的路径放入Intent中,然后打开文件
您从其他应用程序获得的大多数数据应该Uri
已经存在。所以使用
Uri data = intent.getData();
InputStream in = getContentResolver.getInputStream(data);
OutputStream out = new FileOutputStream(new File(Environment.getExternalStorageDirectoy(), "file2.txt"));
// copy in to out
可能是最好的选择。