哇,我不敢相信有多少与加载和保存到内部存储器有关的问题。我发现我只能保存到与我的应用程序相关的保护区。我不确定我什至可以在那个区域创建一个目录。存储到我已经掌握的 SD,但要求是如果没有可用的 SD 卡或已被删除,则应用程序继续能够加载和保存用户设置。我有 120 个不同的数据项,所以共享偏好不是办法。缓存不是持久的。
我目前有一种方法:
public static void SaveUserPrefs()
{
try
{
//FileOutputStream fos = openFileOutput("userPrefs.dat", Context.MODE_PRIVATE);
FileOutputStream fos = new FileOutputStream( "userPrefs.dat");
BufferedOutputStream bos = new BufferedOutputStream(fos); //to get a buffered stream
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeFloat(versionNumber);
oos.writeInt(autoWifiStart);
oos.writeInt(autoAirPlane);
... many more items and file close
我得到文件未找到异常 /userPrefs.dat 只读文件系统 您会认为相同的代码可以在外部或内部工作,但不是。我也尝试了注释掉代码,结果相同。我在哪里以及如何保存这些数据?我需要做一些不同的事情来加载它吗?我确实将权限设置为 save_external_Storage。