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


猜你喜欢

转载自blog.csdn.net/weixin_41454168/article/details/79654463