当前位置: 首页 > news >正文

Android -- 保存文件

背景                                                                                            

我们以常见的登录的时候有CheckBox来显示是否保存帐号密码的形式来生动的讲解这个故事。

最后是以txt文档保存,用到的是Java的IO操作。

这个只是粗略的,大家不喜勿喷。

保存文件                                                                                      

public static void savefile2card(Context context,String username,String password)
    {
        File file = null;
        FileOutputStream fos = null;
        try 
        {
        //    file = new File("/data/data/com.yuyidong.savefile/savefile.txt");
            file = new File(context.getFilesDir(),"info.txt");
            fos = new FileOutputStream(file);
            fos.write((username+"!!!!"+password).getBytes());    
        } 
        catch (Exception e) 
        {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
            try 
            {
                fos.close();
            } 
            catch (IOException e1) 
            {
                // TODO 自动生成的 catch 块
                e1.printStackTrace();
            }
        }
    }

读取文件                                                                                      

public static Map<String,String> getSaveFile(Context context)
    {
        File file =new File(context.getFilesDir(),"info.txt");        
        try 
        {
            FileInputStream fis = new FileInputStream(file);
            BufferedReader br = new BufferedReader(new InputStreamReader(fis));
            String str = br.readLine();
            String[] infos = str.split("!!!!");
            Map<String,String> map = new HashMap<String, String>();
            map.put("username",infos[0]);
            map.put("password", infos[1]);
            br.close();
            return map;
        } 
        catch (Exception e)
        {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
            return null;
        }
        finally
        {    
        }    
    }

主程序                                                                                         

public class MainActivity extends Activity {

    private Button button;
    private CheckBox check;
    private EditText usernameText;
    private EditText passwordText;
    private String username;
    private String password;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button);
        check = (CheckBox) findViewById(R.id.check);

        usernameText = (EditText) findViewById(R.id.username);        
        passwordText = (EditText) findViewById(R.id.password);
    
        button.setOnClickListener(new buttonListener());

        Map<String, String> map = read.getSaveFile(this);
        usernameText.setText(map.get("username"));
        passwordText.setText(map.get("password"));
    }
    
    class buttonListener implements OnClickListener
    {

        @Override
        public void onClick(View v) {
            // TODO 自动生成的方法存根
            username = usernameText.getText().toString();
            password = passwordText.getText().toString();
            System.out.println(username+"~!!~"+password);
            if(check.isChecked())
            {                
                save.savefile2card(MainActivity.this, username, password);
            }
        }
    }

                               我是天王盖地虎的分割线                                 

源代码:http://pan.baidu.com/s/1dD1Qx01

saveFile.zip

 

 

 

转载请注明出处:http://www.cnblogs.com/yydcdut/p/3708964.html

转载于:https://www.cnblogs.com/yydcdut/p/3708964.html

相关文章:

  • ORACLE EXECUTE IMMEDIATE 用法详解
  • SpringMVC使用@ResponseBody输出字符串时遇到的乱码问题及解决办法
  • 【Advanced Windows Phone Programming】在windows phone 8中解码mp3 和编码pcm
  • JavaScript创建对象(五)——动态原型模式
  • Asp.Net Mvc + ComBoost.Mvc快速开发
  • Laravel Mix运行时关于es2015报错解决方案
  • 建站初级指南
  • 一个ViewGroup#dispatchDraw()中的NP分析
  • LINUX命令 cp: omitting directory 出现的问题解决办法
  • 枚举类的简单应用
  • 手把手教你启用Win10的Linux子系统(超详细)
  • [转载]C# Double toString保留小数点方法
  • 自动化部署打破混乱之墙 助力开发、运维、测试协同作战
  • spring restTemplate 上传数据流/字节数组
  • Windows下leapmotion中touchless的使用
  • 【技术性】Search知识
  • 2017届校招提前批面试回顾
  • cookie和session
  • CSS实用技巧
  • Effective Java 笔记(一)
  • fetch 从初识到应用
  • JAVA 学习IO流
  • JavaScript服务器推送技术之 WebSocket
  • Java基本数据类型之Number
  • redis学习笔记(三):列表、集合、有序集合
  • Redis在Web项目中的应用与实践
  • spark本地环境的搭建到运行第一个spark程序
  • TypeScript实现数据结构(一)栈,队列,链表
  • webgl (原生)基础入门指南【一】
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 基于游标的分页接口实现
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • # 数据结构
  • #Java第九次作业--输入输出流和文件操作
  • #微信小程序:微信小程序常见的配置传值
  • (10)ATF MMU转换表
  • (4)事件处理——(7)简单事件(Simple events)
  • (C语言)共用体union的用法举例
  • (二)c52学习之旅-简单了解单片机
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • ***测试-HTTP方法
  • .NET Standard 的管理策略
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .net反混淆脱壳工具de4dot的使用
  • .Net各种迷惑命名解释
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • @拔赤:Web前端开发十日谈