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;
}

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

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

    Android下,数据的保存,前面介绍过了,把数据保存到内存以及SD卡上,这次我们就介绍一下,更为常用的采用SharedPreferences的方式来保存数据, 1,得到SharedPreferenc ...

  2. Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)

    知识点: 1.使用SQL Helper创建数据库 2.数据的增删查改(PRDU:Put.Read.Delete.Update) 背景知识: 上篇文章学习了保存文件,今天学习的是保存数据到SQL数据库中 ...

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

    学习内容: Android的数据存储.... 1.使用SharedPreferences来保存和读取数据... 2.使用File中的I/O来完成对数据的存储和读取...   一个应用程序,经常需要与用 ...

  4. 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 ...

  5. Android学习笔记_36_ListView数据异步加载与AsyncTask

    一.界面布局文件: 1.加入sdcard写入和网络权限: <!-- 访问internet权限 --> <uses-permission android:name="andr ...

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

              本人邮箱:JohnTsai.Work@gmail.com,欢迎交流讨论.                 欢迎转载,转载请注明网址:http://www.cnblogs.com/J ...

  7. Android 学习笔记之Volley(七)实现Json数据加载和解析...

    学习内容: 1.使用Volley实现异步加载Json数据...   Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...

  8. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  9. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

随机推荐

  1. LINUX:解压问题tar: Child returned status

    解压某个文件时 #tar -zxvf xxxxx.tar.gz 出现下面的错误提示: gzip: stdin: not in gzip formattar: Child returned status ...

  2. Ubuntu16.04 python3.4.3升级到python3.7.1

    python有两个版本,一个2版本,使用的是python:另一个是3版本,使用的是python3. 简易安装python后得到的3版本的版本号是python3.4.3. 可以使用下面的命令查看py版本 ...

  3. A10. JVM 对象

    [概述] 首先需要了解对象在内存中的存储布局,其次需要了解对对象的访问定位. [对象的内存布局] 在 HotSpot 虚拟机中,对象在内存中存储的布局可以分为 3 块区域:对象头(Header).实例 ...

  4. PowerPoint幻灯片手动翻页设置技巧

    步骤: 幻灯片放映>设置幻灯片放映>手动

  5. 字符串str.format()方法的个人整理

    引言: 字符串的内置方法大致有40来个,但是一些常用的其实就那么20几个,而且里面还有类似的用法,区分度高比如isalpha,isalnum,isdigit,还有一些无时不刻都会用到的split切分, ...

  6. python实现tcp文件下载器

    服务器端代码 import socket import os import threading # 处理客户端请求下载文件的操作(从主线程提出来的代码) def deal_client_request ...

  7. poj 3253 Fence Repair (优先队列,哈弗曼)

    题目链接:http://poj.org/problem?id=3253 题意:给出n块木板的长度L1,L2...Ln,求在一块总长为这个木板和的大木板中如何切割出这n块木板花费最少,花费就是将木板切割 ...

  8. Spring核心技术(八)——Spring自动装载的注解

    本文针对自动装载的一些注解进行描述. 基于注解的容器配置 @Required注解 @Required注解需要应用到Bean的属性的setter方法上面,如下面的例子: public class Sim ...

  9. 怎样提高ES集群的稳定性?

    别挂master节点. 稳定性:独立的master节点, 独立的协调节点 > master兼职协调节点 > master兼职数据节点 > master 兼职协调 + 数据节点. cl ...

  10. Git--使用须知123

    详细的篇幅以后补充 安装篇: 设置篇: 由于我们大多数是windows程序员,那么,在使用git的过程前需要做一些设置项. 1.换行符自动转换. 查看:git config --global --li ...