Android存储遇到的错误

本文记录了一位新手在Android应用中使用Java对象流进行学生列表存储时遇到的问题及解决过程。包括权限配置、USB存储模式冲突、非法字符使用以及正确指定文件路径等关键点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在对一个学生列表进行存储时。由于是新手所以多次失败。

使用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");

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值