今天在对一个学生列表进行存储时。由于是新手所以多次失败。
使用Java的的对象流ObjectOutputStream进行存储的代码如下
//关键代码
File file = new File("student.dat");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
oos.writeObject(list);
oos.flush();
oos.close();
1 考虑了没有权限。检查AndroidManifest.xml,依然失败
<!--外部存储-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--允许装载和卸载文件权限-->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
2 网上的错误大多试了下。
-
开发中发现,原先读写SD卡上内容的代码运行一直正常,但突然就发生读写失败错误。
原因:当打开了USB存储模式的时候,,SD卡被上锁了,导致程序无法读写操作.
-
文件名使用非法字符。如‘\n’.
3 最后发现文件名不对。因为Android所以的数据都存储在一个文件夹下 '/data/data/<app package>/files'下。所以在文件前添加即可。
static String appDataFile = "/data/data/com.example.administrator.student_manage/files";
static File studentListFile = new File(appDataFile+"studentList.dat");