Android学习笔记-保存数据的实现方法1

Android开发中,有时候我们需要对信息进行保存,那么今天就来介绍一下,保存文件到内存,以及SD卡的一些操作,及方法,供参考。

第一种,保存数据到内存中:

//java开发中的保存数据的方式
public static boolean saveUserInfo(String username,String password){
		File file = new File("/data/data/com.ftf.login/info.txt");
		try {
			FileOutputStream fos = new FileOutputStream(file);
			// ftf##123
			fos.write((username+"##"+password).getBytes());
			fos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false;
		}
		return true;

	}

//Android开发中,保存数据的方法,我们传递一个context对象,这样就可以较为直接的把数据保存到程序在手机系统中的单独的文件夹,符合Android的开发规范,
	public static boolean saveUserInfo(Context context,String username,String password){
		try {

			File filesDir = context.getFilesDir();
			File file = new File(filesDir,"info.txt");
			FileOutputStream fos = new FileOutputStream(file);
			// ftf##123
			fos.write((username+"##"+password).getBytes());
			fos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false;
		}
		return true;

	}
	/*
	 * 获取保存的数据
	 */
	public static Map<String,String> getSavedUserInfo(Context context){
		File filesDir = context.getFilesDir();
		File file = new File(filesDir,"info.txt");
		try {
			FileInputStream fis = new FileInputStream(file);
			//使用buffer,
			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]);

			return map;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}

	}

第二种,保存数据到SD卡

  这时我们需要用到Environment,来较为方便的获取SD卡的目录,这时随便一般情况下,SD卡是在/data/data/sdcard目录下,但是一些国产手机,以及平板中目录机构不是这样的,这样做可以保证程序的兼容性,而且也是Android开发规范推荐。



public static boolean saveUserInfo(Context context,String username,String password){
		try {

//			File filesDir = context.getFilesDir();
//			File file = new File(filesDir,"info.txt");
			if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()));
			//获取SD卡的目录
			File  file = new File(Environment.getExternalStorageDirectory(),"info.txt");

			FileOutputStream fos = new FileOutputStream(file);
			// ftf##123
			fos.write((username+"##"+password).getBytes());
			fos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false;
		}
		return true;

	}

第三,按照权限,对文件进行存储

  这个较为符合Android的开发规范,Android下文件存储有四中类型:PRIVATE,READEABLE,WRITEABLE,READEABLE+WRITEABLE,也即私有,可读,可写,可读可写,我们在保存文件的时候可以直接进行指定,而且context可以直接打开一个文件输出流,所以Android下开发保存文件,推荐这种方式。

	public static boolean saveUserInfo(Context context,String username,String password,int mode){
		try {
//
//			File filesDir = context.getFilesDir();
//			File file = new File(filesDir,"info.txt");
//			FileOutputStream fos = new FileOutputStream(file);
			//在上下文的环境创建一个文件
			FileOutputStream fos = null;
			switch (mode) {
			case 1:
				fos = context.openFileOutput("private.txt", Context.MODE_PRIVATE);
				break;
			case 2:
				fos = context.openFileOutput("readeable.txt", Context.MODE_WORLD_READABLE);
				break;
			case 3:
				fos = context.openFileOutput("writeable.txt", Context.MODE_WORLD_WRITEABLE);
				break;
			case 4:
				fos = context.openFileOutput("public.txt", Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);
				break;
			}
			// ftf##123
			fos.write((username+"##"+password).getBytes());
			fos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false;
		}
		return true;
	}
时间: 2024-10-25 07:21:11

Android学习笔记-保存数据的实现方法1的相关文章

Android 学习笔记之数据存储SharePreferenced+File

学习内容: Android的数据存储.... 1.使用SharedPreferences来保存和读取数据... 2.使用File中的I/O来完成对数据的存储和读取...   一个应用程序,经常需要与用户之间形成交互...需要保存用户的设置和用户的数据信息...这些都离不开数据的存储...Android的数据采用五种方式来进行存储...在这里就先介绍两种存储方式... 1.使用SharedPreferences存储数据...   对于软件配置参数的保存,Windows系统采用ini文件来进行保存,

Android学习笔记之数据的内部存储方式实习数据的读写

(1)目录结构 (2) 布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"

ios1学习笔记-保存数据的4种方式

在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法.前一个方法告诉系统怎么对对象进行编码,而后一个方法则是告诉系统怎么对对象进行解码.例如对Possession对象归档保存.

Android学习笔记之数据的Sdcard存储方法及操作sdcard的工具类

FileService.java也就是操作sdcard的工具类: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75

Android学习笔记——保存文件(Saving Files)

Android设备有两种文件存储区域:   内部存储和外部存储 ("internal" and "external" storage). 这名字来自早期Android,那时大多数Android设备提供两种存储方式:内置的非易失的内存(内部存储)和可移动的存储例如micro SD卡(外部存储). 一些设备将永久内存分为内部和外部两部分,因此即使没有外部存储,依旧有两种存储空间.不管有没有外部存储,API的方法都是一样的.     内部存储: 始终都是可用的 保存的文件

Android学习笔记之数据的共享存储SharedPreferences

(1)布局文件,一个简单的登录文件; <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"

Android开发学习笔记:数据存取之SQLite浅析

一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl.PHP.Java.C++..Net等,还有ODBC接口,同样比起 Mysql.PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的

Android学习笔记(十二)——使用意图传递数据的几种方式

使用意图传递数据的几种方式 点此获取完整代码 我们除了要从活动返回数据,也常常要传递数据给活动.对此我们可以使用Intent对象将这些数据传递给目标活动. 1.创建一个名为PassingData的项目,在activity_main.xml文件中添加一个Button: <Button android:id="@+id/btn_SecondActivity" android:layout_width="fill_parent" android:layout_hei

Android学习笔记(四九):通过Content Provider访问数据

在上次笔记中,我们编写了自己的Provider,这次笔记,我们将通过Content Provider的Uri接口对数据进行访问,重写Android学习笔记(四二)中例子.在这里我们不在充分描述相关UI如何编写,可以到笔记(四二)中详细查看,重点讲述如何实现数据的访问. 读取信息 读取信息方式,在笔记(四七)中已经介绍,代码如下 private voidread(){     /* 通过managedQuery读取,第1参数表示URI, 第2参数表示所需读取的信息,第3个参数是限制条件,类似SQL