android 中在内存中保存文件

以一个登陆的例子来将,将登陆时的信息保存在指定目录的文件中。在第一次登陆后,对用户名等在内存文件中保存。

android界面:

界面:

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context=".MainActivity" >
11
12     <TextView
13         android:layout_width="fill_parent"
14         android:layout_height="wrap_content"
15         android:text="@string/PlaseInputName"
16         android:textSize="20dp"
17         />
18
19     <EditText
20         android:id="@+id/et_username"
21         android:layout_width="fill_parent"
22         android:layout_height="wrap_content"
23         android:layout_marginBottom="20dp"
24         android:textColor="#FFFF00"
25         />
26
27     <TextView
28         android:layout_width="fill_parent"
29         android:layout_height="wrap_content"
30         android:text="@string/PlaseInputPwd"
31         android:textSize="20dp" />
32
33     <EditText
34         android:inputType="textPassword"
35         android:id="@+id/et_userpwd"
36         android:layout_width="fill_parent"
37         android:layout_height="wrap_content" />
38
39     <RelativeLayout
40         android:layout_width="fill_parent"
41         android:layout_height="wrap_content" >
42
43         <CheckBox
44             android:id="@+id/cb_remeber_pwd"
45             android:layout_width="wrap_content"
46             android:layout_height="wrap_content"
47             android:checked="true"
48             android:text="@string/checkpwd" />
49
50         <Button
51             android:layout_width="wrap_content"
52             android:layout_height="wrap_content"
53             android:layout_alignParentRight="true"
54             android:onClick="login"
55             android:text="@string/login"
56             />
57     </RelativeLayout>
58
59 </LinearLayout>

界面原型:

在第一次登陆时,看是否选择记住密码,如果是将登陆信息保存后读取

public class LoginService {
    public static boolean saveUerInfo(Context context, String UerName,
            String password) {

        try {
            File file = new File(context.getFilesDir(), "info.txt");
            // File file = new File("/data/data/com.example.login/info.txt");
            FileOutputStream fos = new FileOutputStream(file);
            fos.write((UerName + "###" + password).getBytes());
            return true;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return false;
        }

    }

主函数:

 1 package com.example.login;
 2
 3 import java.util.Map;
 4
 5 import com.example.login.service.LoginService;
 6
 7 import android.os.Bundle;
 8 import android.app.Activity;
 9 import android.text.TextUtils;
10 import android.view.Menu;
11 import android.view.View;
12 import android.widget.CheckBox;
13 import android.widget.EditText;
14 import android.widget.Toast;
15
16 public class MainActivity extends Activity {
17     private EditText et_username;
18     private EditText et_userpwd;
19     private CheckBox cb;
20
21     @Override
22     protected void onCreate(Bundle savedInstanceState) {
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.activity_main);
25         et_username = (EditText) this.findViewById(R.id.et_username);
26         et_userpwd = (EditText) this.findViewById(R.id.et_userpwd);
27         cb = (CheckBox) this.findViewById(R.id.cb_remeber_pwd);
28         Map<String, String> map = LoginService.getSaveUserInfo(this);
29         if(map!=null){
30             et_username.setText(map.get("name"));
31             et_userpwd.setText(map.get("password"));
32         }
33     }
34
35     // 登陆
36     public void login(View view) {
37         String name = et_username.getText().toString().trim();
38         String password = et_userpwd.getText().toString().trim();
39         if (TextUtils.isEmpty(name) || (TextUtils.isEmpty(password))) {
40             Toast.makeText(this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show();
41         } else {
42             // 登陆
43             if (cb.isChecked()) {
44                 // 保存密码
45                 boolean result = LoginService.saveUerInfo(this, name, password);
46                 if (result) {
47                     Toast.makeText(this, "保存信息成功", 0).show();
48                 }
49             }
50             // 登陆
51             if ("zhangsan".equals(name) && ("12345").equals(password)) {
52                 Toast.makeText(this, "登陆成功", 0).show();
53             } else {
54                 Toast.makeText(this, "登陆失败", 0).show();
55             }
56         }
57     }
58
59     public EditText getEt_username() {
60         return et_username;
61     }
62
63     public void setEt_username(EditText et_username) {
64         this.et_username = et_username;
65     }
66
67     public EditText getEt_userpwd() {
68         return et_userpwd;
69     }
70
71     public void setEt_userpwd(EditText et_userpwd) {
72         this.et_userpwd = et_userpwd;
73     }
74
75     public CheckBox getCb() {
76         return cb;
77     }
78
79     public void setCb(CheckBox cb) {
80         this.cb = cb;
81     }
82
83 }

方法:

 1 package com.example.login.service;
 2
 3 import java.io.BufferedReader;
 4 import java.io.File;
 5 import java.io.FileInputStream;
 6 import java.io.FileNotFoundException;
 7 import java.io.FileOutputStream;
 8 import java.io.IOException;
 9 import java.io.InputStreamReader;
10 import java.util.HashMap;
11 import java.util.Map;
12
13 import org.apache.http.entity.InputStreamEntity;
14
15 import android.content.Context;
16
17 public class LoginService {
18     public static boolean saveUerInfo(Context context, String UerName,
19             String password) {
20
21         try {
22             File file = new File(context.getFilesDir(), "info.txt");
23             // File file = new File("/data/data/com.example.login/info.txt");
24             FileOutputStream fos = new FileOutputStream(file);
25             fos.write((UerName + "###" + password).getBytes());
26             return true;
27         } catch (Exception e) {
28             // TODO Auto-generated catch block
29             e.printStackTrace();
30             return false;
31         }
32
33     }
34
35     public static Map<String, String> getSaveUserInfo(Context context) {
36         try {
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 str = br.readLine();
41             String[] infos = str.split("###");
42             Map<String, String> map = new HashMap<String, String>();
43             map.put("name", infos[0]);
44             map.put("password", infos[1]);
45             return map;
46         } catch (Exception e) {
47             // TODO Auto-generated catch block
48             e.printStackTrace();
49         }
50         return null;
51
52
53     }
54 }
时间: 2024-12-28 12:01:14

android 中在内存中保存文件的相关文章

MFC中CFileDialog打开和保存文件对话框(转)

首先我先写一段在VC6.0上打开/保存文件对话框的程序:        CString   FilePathName;//文件名参数定义    CFileDialog  Dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"TXT Files(*.txt)|*.txt|All Files(*.*)|*.*");     //打开文件    if(Dlg.DoModal() == IDOK)//是否打开成功    {   

python ——变量中计算机内存中的表示

最后,理解变量在计算机内存中的表示也非常重要.当我们写: a = 'ABC' 时,Python解释器干了两件事情: 在内存中创建了一个'ABC'的字符串: 在内存中创建了一个名为a的变量,并把它指向'ABC'. 也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码: a = 'ABC' b = a a = 'XYZ' print b 最后一行打印出变量b的内容到底是'ABC'呢还是'XYZ'?如果从数学意义上理解,就会错误地得出b和a相同,也应该是

【原创】二级指针中在内存中的样子

长话短说,只要能理解指针,基本上二级指针就很好理解了. 看看下面的栗子: int a,b; int array[10]; int *pa; pa=&a; //&a 是一个指针表达式. Int **ptr=&pa; //&pa 也是一个指针表达式. *ptr=&b; //*ptr 和&b 都是指针表达式. pa=array; pa++; //这也是指针表达式. OK.如果你还不理解就调试一下,看看内存中的样子和汇编就明白了. 00BE3C05 89 45 FC

Android将应用log信息保存文件

相信大家在做应用调试的时候,不可能时时通过USB线连着电脑去查看log信息,所以,将应用的log信息保存到手机本地就很有必要了,有助我们从这些log信息中提取有用的部分,以解决一些bug,下面我把网上分享的代码中作了一些精简,作为开发者使用,个人觉得没必要通过用户上传给我们,用户上传的不需要这么庞大的log信息,仅仅那部分崩溃的log信息即可,可参考我的另外一篇blog:http://blog.csdn.net/weidi1989/article/details/7927273. 好了,废话不多

Android中的内存管理机制以及正确的使用方式

概述 从操作系统的角度来说,内存就是一块数据存储区域,属于可被操作系统调度的资源.现代多任务(进程)的操作系统中,内存管理尤为重要,操作系统需要为每一个进程合理的分配内存资源,所以可以从两方面来理解操作系统的内存管理机制. 第一:分配机制.为每一个进程分配一个合理的内存大小,保证每一个进程能够正常的运行,不至于内存不够使用或者每个进程占用太多的内存. 第二:回收机制.在系统内存不足打的时候,需要有一个合理的回收再分配的机制,以保证新的进程可以正常运行.回收的时候就要杀死那些正在占有内存的进程,操

SQL Server 2014新功能 -- 内存中OLTP(In-Memory OLTP)

SQL Server 2014新功能 -- 内存中OLTP(In-Memory OLTP) 概述 内存中OLTP(项目"Hekaton")是一个全新的.完全集成到SQL Server的数据库引擎组件. 对OLTP工作负载访问中在内存中的数据进行了优化.内存中OLTP能够帮助OLTP工作负载实现显著的性能改善,并减少处理时间.表能被视为"内存优化",提升内存中的OLTP功能.内存优化表是完全可事务的.并可以使用Transact-SQL进行访问.Transact-SQL

SQL Server 内存中OLTP内部机制概述(四)

----------------------------我是分割线------------------------------- 本文翻译自微软白皮书<SQL Server In-Memory OLTP Internals Overview>:http://technet.microsoft.com/en-us/library/dn720242.aspx 译者水平有限,如有翻译不当之处,欢迎指正. ----------------------------我是分割线---------------

调用系统录像功能保存文件到sdcard

public void click(View view) throws Exception { Intent intent = new Intent(); intent.setAction("android.media.action.VIDEO_CAPTURE"); intent.addCategory("android.intent.category.DEFAULT"); String fileName = new SimpleDateFormat("y

(九)android 中数据存储与访问——保存文件到手机内存

9.1手机的存储区域 手机的存储区域通常有两个地方:一:手机内部存储空间,理解成一块微硬盘/data/data/:二:外部存储空间SD卡 9.2方法捕获异常的原则 如果方法有返回值,则用try catch捕获,如果方法的返回值是Void类型,则使用throws抛出异常 9.3 上下文Context Context:是一个类,提供一些方便的api 可以得到应用程序的环境,例如:环境的包名,安装路径,资源路径,资产的路径 9.4 保存文件到手机内存——登陆界面例子程序 9.4.1 项目需求 用户登陆