zoukankan      html  css  js  c++  java
  • Android 中保存数据到文件中

    1、在安卓开发中,会遇到保存数据到手机中以及从手机中获取数据的情况

    /**
         * 把数据存放到手机内存中
         * 
         * @param number
         * @param password
         * @return
         */
        public static boolean saveUserInfo(Context context, String number,
                String password) {
    
            try {
    
                // getCacheDir()方法用于获取/data/data/<package name>/cache目录 缓存数据
                // getFilesDir()方法用于获取/data/data/<package name>/files目录
    
                // 定义路径
                // String path = "/data/data/com.example.qqlogin/qqlogin.txt";
    
                File filesDir = context.getFilesDir();
                // 动态获得路径
                File file = new File(filesDir, "qqlogin.txt");
    
                // 输出流,把数据输出到文件中
                FileOutputStream fos = new FileOutputStream(file);
                // 要写入的数据
                String data = number + "##" + password;
    
                // 写入字节流
                fos.write(data.getBytes());
    
                // 清空缓存
                fos.flush();
                // 关闭流
                fos.close();
    
                return true;
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
            return false;
        }
    
        /**
         * 从文件中读取数据,并返回出去
         * 
         * @return
         */
        public static Map<String, String> getUserInfo(Context context) {
            // String path = "/data/data/com.example.qqlogin/qqlogin.txt";
            // 动态获取文件名
            File filesDir = context.getFilesDir();
            // 动态获得路径
            File f = new File(filesDir, "qqlogin.txt");
    
            try {
                // 从文件中读取流
                // FileInputStream fis = new FileInputStream(path);
                FileInputStream fis = new FileInputStream(f);
                // 把字节流 转换为 字符串流
                BufferedReader reader = new BufferedReader(new InputStreamReader(
                        fis));
                String text = reader.readLine();
                if (!TextUtils.isEmpty(text)) {
                    String[] spilt = text.split("##");
                    Map<String, String> userInfoMap = new HashMap<String, String>();
                    userInfoMap.put("number", spilt[0]);
                    userInfoMap.put("password", spilt[1]);
                    return userInfoMap;
                }
    
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return null;
        }

    2、通过SharedPreferences 向手机中写入数据

    /**
         * 把数据存放到手机内存中
         * 
         * @param number
         * @param password
         * @return
         */
        public static boolean saveUserInfo(Context context, String number,
                String password) {
            try {
    
                // 文件保存在 /data/data/包名/shared_prefs/itheima28
                SharedPreferences sp = context.getSharedPreferences("aa",
                        context.MODE_PRIVATE);
    
                // 获得一个编辑对象
                Editor ed = sp.edit();
    
                // 存放数据
                ed.putString("number", number);
                ed.putString("password", password);
                // 提交数据
                ed.commit();
                return true;
    
            } catch (Exception e) {
    
            }
    
            return false;
        }
    
        /**
         * 从文件中读取数据,并返回出去
         * 
         * @return
         */
        public static Map<String, String> getUserInfo(Context context) {
    
            try
            {
            // 文件保存在 /data/data/包名/shared_prefs/itheima28
            SharedPreferences sp = context.getSharedPreferences("aa",context.MODE_PRIVATE);        
            String number=sp.getString("number", null);
            String password=sp.getString("password", null);
            
            Map<String,String>  userInfoMap=new HashMap<String, String>();
            userInfoMap.put("number", number);
            userInfoMap.put("password",password);
            return  userInfoMap;    
            }
            catch(Exception e)
            {
                
            }
            
            return null;
        }
  • 相关阅读:
    boost pool 和 object_pool
    boost::ref
    Source Insight设置
    windows7下硬盘安装ubuntu14.04
    POJ 2778 DNA Sequence (AC自己主动机 + dp)
    cocos2dx 运动+旋转动画 CCSequence CCAnimation CCAnimate CCMoveTo CCCallFuncN
    LeetCode 2 Add Two Numbers
    MySQL数据库导入外部*.sql文件具体步骤
    [ExtJS5学习笔记]第十节 Extjs5新增特性之ViewModel和DataBinding
    svn项目导入
  • 原文地址:https://www.cnblogs.com/luoyangcn/p/4694605.html
Copyright © 2011-2022 走看看