Android存储(读取)之内存FilesDir存储

  • 数据存储到私有文件夹中:data/data/包名/files/

    这里写图片描述

  • 点击“清除数据”按钮可以删除data/data/包名/files/下的数据

    这里写图片描述

  // 把String保存到私有文件夹中:data/data/包名/files/
        StoreUtils.storeStringToFilesDir(this, "fileDir", "ha.txt");
        //读取data/data/包名/files/中的文件
        String data = StoreUtils.readStringFromFilesDir(new File(getFilesDir(), "ha.txt"));
 /**
     * 把数据存储到私有文件夹中
     * 默认目录:data/data/包名/files/
     * 1.同样上面的目录可以使用context.getFilesDir()来获取
     * 2.只有自己的应用程序可以访问该目录,其他应用程序无法访问该目录(私有文件夹)
     * 真实的手机data这个目录是打不开的(未root),这是为了保护隐私,系统做了权限设置
     */

    /**
     * 数据存储到私有文件夹中:data/data/包名/files/
     * @param context 上下文
     * @param content 要保存的内容Sting
     * @param fileName 保存内容的文件名称
     */
    public static void storeStringToFilesDir(Context context, String content, String fileName) {
        try {
            File file = new File(context.getFilesDir(), fileName);
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(content.getBytes());
            fos.close();
            Toast.makeText(context, "存储数据到FilesDir成功", Toast.LENGTH_SHORT).show();
        }  catch (IOException e) {
            e.printStackTrace();
            Toast.makeText(context, "存储数据到FilesDir失败", Toast.LENGTH_SHORT).show();
        }
    }

    /**
     * 从私有文件夹中数读取据:data/data/包名/files/
     * @param file  data/data/包名/files/下的文件
     * @return String内容
     */
    public static String readStringFromFilesDir(File file) {

            try {
                FileInputStream fis = new FileInputStream(file);
                BufferedReader br = new BufferedReader(new InputStreamReader(fis));
                String content = "";
                String tmp;
                while ((tmp = br.readLine()) != null) {
                    content += tmp;
                }
                br.close();
                fis.close();
                return content;
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                return "不存在此文件,请核对文件路径、文件名";
            } catch (Exception e) {
                e.printStackTrace();
                return "文件读取失败";
            }


    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值