1.布局

  1. <LinearLayout
  2. xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:orientation="vertical"
  7. android:paddingBottom="@dimen/activity_vertical_margin"
  8. android:paddingLeft="@dimen/activity_horizontal_margin"
  9. android:paddingRight="@dimen/activity_horizontal_margin"
  10. android:paddingTop="@dimen/activity_vertical_margin"
  11. tools:context="com.example.logindemo.MainActivity" >
  12.  
  13. <TextView
  14. android:layout_width="fill_parent"
  15. android:layout_height="wrap_content"
  16. android:text="请输入用户名" />
  17. <EditText
  18. android:layout_width="fill_parent"
  19. android:layout_height="wrap_content"
  20. android:id="@+id/et_username"
  21. />
  22. <TextView
  23.  
  24. android:layout_width="fill_parent"
  25. android:layout_height="wrap_content"
  26. android:text="请输入密码" />
  27. <EditText
  28. android:inputType="textPassword"
  29. android:layout_width="fill_parent"
  30. android:layout_height="wrap_content"
  31. android:id="@+id/et_password"
  32. />
  33. <RelativeLayout
  34. android:layout_width="fill_parent"
  35. android:layout_height="wrap_content"
  36.  
  37. >
  38. <CheckBox
  39. android:layout_width="wrap_content"
  40. android:layout_height="wrap_content"
  41. android:id="@+id/cb_remember"
  42. android:text="记住密码"
  43. android:checked="true"
  44. />
  45. <Button
  46. android:onClick="login"
  47. android:layout_width="wrap_content"
  48. android:layout_height="wrap_content"
  49. android:layout_alignParentRight="true"
  50. android:text="登录"
  51. android:id="@+id/btn_login" />
  52. </RelativeLayout>
  53.  
  54. </LinearLayout>

2.MainActivity.java

  1. package com.example.logindemo;
  2.  
  3. import java.util.Map;
  4.  
  5. import android.os.Bundle;
  6. import android.support.v7.app.ActionBarActivity;
  7. import android.text.TextUtils;
  8. import android.view.Menu;
  9. import android.view.MenuItem;
  10. import android.view.View;
  11. import android.widget.CheckBox;
  12. import android.widget.EditText;
  13. import android.widget.Toast;
  14.  
  15. import com.example.logindemo.service.LoginService;
  16.  
  17. public class MainActivity extends ActionBarActivity {
  18.  
  19. private EditText et_username;
  20. private EditText et_pwd;
  21. private CheckBox cb_remember;
  22.  
  23. @Override
  24. protected void onCreate(Bundle savedInstanceState) {
  25. super.onCreate(savedInstanceState);
  26. setContentView(R.layout.activity_main);
  27. et_username = (EditText)this.findViewById(R.id.et_username);
  28. et_pwd = (EditText)this.findViewById(R.id.et_password);
  29. cb_remember = (CheckBox)this.findViewById(R.id.cb_remember);
  30.  
  31. Map<String,String> map = LoginService.getUserInfo(this);
  32. if(map!=null)
  33. {
  34. et_username.setText(map.get("username"));
  35. et_pwd.setText(map.get("password"));
  36. }
  37. }
  38.  
  39. public void login(View v){
  40.  
  41. String username = et_username.getText().toString();
  42. String pwd = et_pwd.getText().toString();
  43.  
  44. if(TextUtils.isEmpty(username) || TextUtils.isEmpty(pwd)){
  45.  
  46. Toast.makeText(MainActivity.this, "username or password is empty", Toast.LENGTH_SHORT).show();
  47. return;
  48. }
  49. else
  50. {
  51.  
  52. if(cb_remember.isChecked())
  53. {
  54. boolean result = LoginService.saveUserInfo(this, username, pwd);
  55. if(result)
  56. {
  57. Toast.makeText(MainActivity.this, "save user info success", Toast.LENGTH_SHORT).show();
  58. }
  59. }
  60.  
  61. if("test".equals(username) && "123".equals(pwd))
  62. {
  63. Toast.makeText(MainActivity.this, "login success", Toast.LENGTH_SHORT).show();
  64. }
  65. else
  66. {
  67.  
  68. Toast.makeText(MainActivity.this, "username or password is error", Toast.LENGTH_SHORT).show();
  69. }
  70. }
  71.  
  72. }
  73. }

3.service

  1. package com.example.logindemo.service;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileOutputStream;
  7. import java.io.InputStreamReader;
  8. import java.util.HashMap;
  9. import java.util.Map;
  10.  
  11. import android.content.Context;
  12.  
  13. public class LoginService {
  14.  
  15. public static boolean saveUserInfo(Context context,String username,String pwd)
  16. {
  17. try
  18. {
  19. File file = new File(context.getFilesDir(),"info.txt");
  20. FileOutputStream fos = new FileOutputStream(file);
  21. fos.write((username+"##"+pwd).getBytes());
  22. fos.close();
  23. return true;
  24. }
  25. catch(Exception e)
  26. {
  27. e.printStackTrace();
  28. return false;
  29. }
  30.  
  31. }
  32.  
  33. public static Map<String,String> getUserInfo(Context context)
  34. {
  35. try
  36. {
  37. File file = new File(context.getFilesDir(),"info.txt");
  38. FileInputStream fis = new FileInputStream(file);
  39. BufferedReader br = new BufferedReader(new InputStreamReader(fis));
  40. String strs = br.readLine();
  41. String arr[] = strs.split("##");
  42. Map<String,String> map = new HashMap<String,String>();
  43. map.put("username", arr[0]);
  44. map.put("password", arr[1]);
  45. return map;
  46.  
  47. }
  48. catch(Exception e)
  49. {
  50. e.printStackTrace();
  51. return null;
  52. }
  53.  
  54. }
  55.  
  56. }

android 简单文件操作的更多相关文章

  1. Android简单文件浏览器源代码 (转)

    Android简单文件浏览器源代码 (转) activity_main .xml <LinearLayout xmlns:android="http://schemas.android ...

  2. android的文件操作

    http://blog.csdn.net/fenghome/article/details/5668598 android的文件操作要有权限: <uses-permission android: ...

  3. android通用文件操作

    最经用到android的SCCard的文件操作,因此稍作了整理,将它写成一个简单的工具类.其中,可以判断SDCard的是否可用,可用存储空间,文件的创建以及写入数据.经过测试,可以正常使用.代码如下: ...

  4. Android FileUtils 文件操作类

    系统路径 Context.getPackageName(); // 用于获取APP的所在包目录 Context.getPackageCodePath(); //来获得当前应用程序对应的apk文件的路径 ...

  5. 也发一个自己实现的android简单文件选择器代码。支持多卡,排序

    一个很简单的文件选择器对话框,支持双sd卡,当然前提是要有sd卡..并且实现了排序效果. 只有100多行的代码,基本的思路就是用listview显示目录下的所有子文件,再判断是文件还是目录. 利用Co ...

  6. python简单文件操作

    写软件著作申请,需要将所有源代码代码贴入一个word中,在源代码前后要添加一些标记,如下: //////////////////////////// //filename1 ///////////// ...

  7. Android 图片文件操作、屏幕相关、.9图片的理解

     一:Android图片操作 1.存储bitmap到本地文件系统 public static void bitmapToFile(Bitmap bitmap, String uri) { if(!ex ...

  8. android中文件操作的四种枚举

    1.MODE_PRIVATE:默认操作模式,代表该文件是私有数据,只能被应用自身访问,在该模式下,写入的的内容会覆盖原文件中的内容. 2.MODE_APPEND:该模式会检查文件是否存在,存在就往文件 ...

  9. Android写入文件操作权限

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses- ...

随机推荐

  1. 关于python 自带csv库的使用心得 附带操作实例以及excel下乱码的解决

    因为上次帮我们产品处理过一个文件,他想生成能excel处理操作的.但是上次由于时间非常紧张,所以并没有处理好. 正好无聊就来好好研究一下 ,找算法要了几个 csv文件.来好好玩一玩. 全篇使用了pyt ...

  2. 用Delphi制作动态菜单 该文章《用Delphi制作动态菜单》

    ---恢复内容开始--- 1.首先,确定动态菜单的数据来源,即要确定动态菜单标题是来自Windows的系统注册表,还是来自一个数据库,或者是来自一个子目录,主要由程序的功能而定.这里假设主窗口名为Ma ...

  3. BZOJ2006[NOI2010]超级钢琴——堆+主席树

    题目描述 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的 音乐. 这架超级钢琴可以弹奏出n个音符,编号为1至n.第i个音符的美妙度为Ai,其中 ...

  4. BZOJ1895Pku3580 supermemo——非旋转treap

    题目描述 给出一个初始序列fA1;A2;:::Ang,要求你编写程序支持如下操作: 1. ADDxyD:给子序列fAx:::Ayg的每个元素都加上D.例如对f1,2, 3,4,5g执行"AD ...

  5. BZOJ4034[HAOI2015]树上操作——树链剖分+线段树

    题目描述 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把某个节点 x 为根的子树中所有点的点权都 ...

  6. Aladdin and the Flying Carpet LightOJ - 1341 (素数打表 + 算术基本定理)

    题意: 就是求a的因数中大于b的有几对 解析: 先把素数打表 运用算术基本定理 求出a的所有因数的个数 然后减去小于b的因数的个数 代码如下: #include <iostream> #i ...

  7. Codeforces Round #337 (Div. 2) B. Vika and Squares

    B. Vika and Squares time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  8. Codeforces Round #418 (Div. 2) B. An express train to reveries

    time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...

  9. 【BZOJ2425】[HAOI2010]计数(组合数学)

    [BZOJ2425][HAOI2010]计数(组合数学) 题面 BZOJ 洛谷 题解 很容易的一道题目. 统计一下每个数位出现的次数,然后从前往后依次枚举每一位,表示前面都已经卡在了范围内,从这一位开 ...

  10. 【转】cJSON 源码分析

    cJSON源码分析 简介 由于C语言汇总,没有直接的字典,字符串数组等数据结构,所以要借助结构体定义,处理json. JSON是一种轻量级的数据交换格式.JSON采用完全独立与语言的文本格式,易于人阅 ...