我看到这个问题已经遇到很多次了,但奇怪的是我找不到解决方案。
我正在尝试将二进制文件写入 SD 卡。这是源代码:
private void saveDataLongs() {
try
{
ObjectOutputStream oos = new ObjectOutputStream(ctx.openFileOutput(Environment.getExternalStorageDirectory().getAbsolutePath()+"/longs.bin", ctx.MODE_WORLD_WRITEABLE));
for (int w=0; w<longCount; w++)
oos.writeLong(longs[w]);
oos.close();
}
catch(IOException e)
{ e.printStackTrace(); }
}
清单包含
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
我收到这个错误:
01-21 22:19:57.323: E/AndroidRuntime(13713): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.ccc.ccc/it.ccc.ccc.Ccc}: java.lang.IllegalArgumentException: File /sdcard/longs.bin contains a path separator
从其他帖子中,我可以理解某些功能仅用于在应用程序的私有存储中写入,因此他们不希望管理目录和路径。有人能帮助我吗?我应该使用不同的方法将数据写入 sd,还是在执行之前进行一些其他操作?我正在尝试向 sdcard 写入一个简单的二进制文件(顺便说一句,它是一个预先计算的数字序列,我需要将它传递给我的 PC,然后将其移回资产,所以,如果有不同的方法来获取这个目标,反正没问题)。
非常感谢。