android文件存储和SharedPreferences存储的方法
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇文章主要讲解了"android文件存储和SharedPreferences存储的方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"android文
千家信息网最后更新 2025年11月06日android文件存储和SharedPreferences存储的方法
这篇文章主要讲解了"android文件存储和SharedPreferences存储的方法",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"android文件存储和SharedPreferences存储的方法"吧!
演示
【文件存储】中查看设备保存的文件
目录
activity_main
MainActivity
/** * 文件存储和SharedPreferences存储实例 */public class MainActivity extends AppCompatActivity { private EditText et_account, et_password; //账号输入框、密码输入框 private Button loginBtn; //登录按钮 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { et_account = findViewById(R.id.et_account); et_password = findViewById(R.id.et_password); loginBtn = findViewById(R.id.btn_login); //点击监听事件 loginBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { switch (view.getId()) { case R.id.btn_login: //当点击登录按钮时,获取界面上输入的 QQ 账号和密码 String account = et_account.getText().toString().trim(); String password = et_password.getText().toString(); //检验输入的账号和密码是否为空 if (TextUtils.isEmpty(account)) { Toast.makeText(getApplicationContext(), "请输入 QQ 账号", Toast.LENGTH_SHORT).show(); return; } if (TextUtils.isEmpty(password)) { Toast.makeText(getApplicationContext(), "请输入密码", Toast.LENGTH_SHORT).show(); return; } //文件存储 //saveOfFile(account,password); //SharedPreferences存储 saveOfSharedPreferences(account,password); break; } } }); } //SharedPreferences存储 private void saveOfSharedPreferences(String account, String password) { //获取 QQ 账号和密码信息 SharedPreferences userInfo=SPSaveQQ.getUserInfo(getApplicationContext()); if (userInfo.getString("username", "") != null&&userInfo.getString("pwd", "") != null) { String username = userInfo.getString("username", "");//读取账号 String pwd = userInfo.getString("pwd", "");//读取密码 Log.i("user", "读取用户信息"); Log.i("user", "username:" + username + ", pwd:" + pwd); if (username.equals(account) && pwd.equals(password)) { Toast.makeText(getApplicationContext(), username+"登录成功!", Toast.LENGTH_SHORT).show(); }else { Log.i("user", "用户或密码错误!"); //保存用户信息 boolean isSaveSuccess = SPSaveQQ.saveUserInfo(getApplicationContext(), account, password); if (isSaveSuccess) { Toast.makeText(getApplicationContext(), "保存成功!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(), "保存失败!", Toast.LENGTH_SHORT).show(); } } }else{ //保存用户信息 boolean isSaveSuccess = SPSaveQQ.saveUserInfo(getApplicationContext(), account, password); if (isSaveSuccess) { Toast.makeText(getApplicationContext(), "保存成功!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(), "保存失败!", Toast.LENGTH_SHORT).show(); } } } //文件存储 private void saveOfFile(String account, String password) { //获取 QQ 账号和密码信息 Map userInfo = FileSaveQQ.getUserInfo(getApplicationContext()); if (userInfo != null) { //将获取的账号显示到界面上 et_account.setText(userInfo.get("account")); //将获取的密码显示到界面上 et_password.setText(userInfo.get("password")); Toast.makeText(getApplicationContext(), userInfo.get("account")+"登录成功!", Toast.LENGTH_SHORT).show(); }else{ //保存用户信息 boolean isSaveSuccess = FileSaveQQ.saveUserInfo(getApplicationContext(), account, password); if (isSaveSuccess) { Toast.makeText(getApplicationContext(), "保存成功!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(), "保存失败!", Toast.LENGTH_SHORT).show(); } } }} FileSaveQQ
/** * 实现 QQ 账号与密码的文件存取与读取功能 */public class FileSaveQQ { /** * 保存用户信息 * @param context * @param account 账号 * @param password 密码 * @return */ public static boolean saveUserInfo(Context context, String account, String password) { //文件的输出流对象 FileOutputStream fos = null; try { //获取文件的输出流对象 fos,该文件只能被当前程序读写 fos = context.openFileOutput("user.txt", Context.MODE_PRIVATE); //将数据转换为字节码的形式写入 user.txt 文件中 fos.write((account + ":" + password).getBytes()); return true; } catch (Exception e) { e.printStackTrace(); return false; }finally { try { if(fos != null){ fos.close(); } } catch (IOException e) { e.printStackTrace(); } } } /** * 从 user.txt 文件中获取存储的用户信息 * @param context * @return */ public static Map getUserInfo(Context context) { String content = ""; //文件的输入流对象 FileInputStream fis = null; try { //获取文件的输入流对象 fis fis = context.openFileInput("user.txt"); //将输入流对象中的数据转换为字节码的形式 byte[] buffer = new byte[fis.available()]; //通过 read()方法读取字节码中的数据 fis.read(buffer); //将获取的字节码转换为字符串 content = new String(buffer); Map userMap = new HashMap(); String[] infos = content.split(":"); //放入账号密码 userMap.put("account", infos[0]); userMap.put("password", infos[1]); Log.i("user", "读取用户信息"); Log.i("user", "account:" + infos[0] + ", password:" + infos[1]); return userMap; } catch (Exception e) { e.printStackTrace(); return null; } finally { try { if (fis != null) { fis.close(); } } catch (IOException e) { e.printStackTrace(); } } }} SPSaveQQ
/** * 实现 QQ 账号与密码SharedPreferences的存取与读取功能 */public class SPSaveQQ { /** * 保存用户信息 */ public static boolean saveUserInfo(Context context, String account, String password){ SharedPreferences sharedPreferences = null; try { sharedPreferences = context.getSharedPreferences("user", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit();//获取编辑器 editor.putString("username", account); editor.putString("pwd", password); editor.commit();//提交修改 return true; }catch (Exception e){ e.printStackTrace(); return false; }finally { if(sharedPreferences != null){ return true; } return false; } } /** * 读取用户信息 */ public static SharedPreferences getUserInfo(Context context){ SharedPreferences userInfo = context.getSharedPreferences("user", Context.MODE_PRIVATE); return userInfo; }}感谢各位的阅读,以上就是"android文件存储和SharedPreferences存储的方法"的内容了,经过本文的学习后,相信大家对android文件存储和SharedPreferences存储的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
文件
存储
密码
账号
信息
用户
输入
方法
成功
对象
字节
登录
数据
界面
学习
内容
功能
形式
按钮
存取
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全宣传周图片 漫画
股票数据库软件有哪些
百度软件开发工程师招聘
港航领域具体数据库案例
hbuilder数据库
北京软件开发公司招聘6
软件开发与编程难度
对于网络安全的句子
上海常见软件开发价格表
网络安全小游戏注册了怎么退订
军事通信网络技术读书心得
hmcl 服务器 皮肤
网络安全模拟法庭剧本
虎丘区信息化软件开发系统
怎么进入服务器主机
网络安全发展规划正式发布
网络技术专业人才需求报告
环境监测云平台软件开发
手机设定代理服务器啥意思
从日志恢复数据库
第九大陆数据库
数据库逻辑设计阶段需要
联通青岛网络技术大会
枣庄企业诚信积分管理软件开发
数据库源码下载
网络安全教肓总结
软件开发服务需要签订合同吗
镇江idc服务器技术指导
服务器定期巡检报告
随从大师连不上档案服务器