Android 中 使用 openFileOutput 和 openFileInput 存取数据

实现:

1、通过 openFileOutput 保存数据

2、通过 openFileOutput 读取数据


效果:

将数据存入


将数据取出



实现详情

看了上面的效果图,相信布局应该没问题,而且如果是实际应用的话,还是要结合实际来做

1、通过 openFileOutput 保存数据

其核心代码为:

submit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        //获取输入的用户名密码
        String names = name.getText().toString();
        String pswds = pswd.getText().toString();

        FileOutputStream fos = null;
        try {
            //获取文件输出流
            //MODE_APPEND 检查文件是否存在,存在就往里面追加,不存在就创建一个文件
            fos = openFileOutput("login",MODE_APPEND);
            //保存用户名和密码
            fos.write((names + " " + pswds).getBytes());
            //清除缓存
            fos.flush();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //关闭文件输入流
            try{
                if(fos!=null)
                    fos.close();
            } catch (IOException e){
                e.printStackTrace();
            }
        }
        startActivity(new Intent(MainActivity.this,Main2Activity.class));
    }
});

注意存入时,是通过空格间隔的


2、通过 openFileOutput 读取数据

其核心代码为:

obtian.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        FileInputStream fis = null;
        byte[] buffer = null;
        try {
            //获取文件输入流
            fis = openFileInput("login");
            //定义保存数据的数组
            buffer = new byte[fis.available()];
            //从输入流中读取数据
            fis.read(buffer);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try{
                if(fis!=null)
                    fis.close();
            }catch(IOException e){
                e.printStackTrace();
            }
        }
        //获取数组中的数据
        String data = new String(buffer);
        String names = data.split(" ")[0];
        String pswds = data.split(" ")[1];
        one.setText("账号是:" + names);
        two.setText("密码是:" + pswds);
    }
});

这里用 split(" ") 方法实现数据分离(实际应用时可根据需求灵活运用)


源码:https://github.com/iscopy/Files


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值