Android下的数据存储与訪问 --- 以文件的形式
Android下的数据存储与訪问 --- 以文件的形式 1.1 储存文件存放在手机内存中: // *** 储存数据到 /data/data/包名/files/jxn.txt文件里
String data = "test"; // /data/data/包名/files
File filesDir = context.getFilesDir(); File file = new File(filesDir, "jxn.txt");
FileOutputStream fos = new FileOutputStream(file);
fos.write(data.getBytes());
fos.flush();
fos.close(); // *** 从 /data/data/包名/files/jxn.txt文件里读取数据
String data = "test";
File filesDir = context.getFilesDir();
File file = new File(filesDir, "jxn.txt");
FileInputStream fis = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
String text = reader.readLine();
reader.close(); 补充:
1,在Android上下文中openFileOutput()方法能够把数据写到/data/data/包名/files文件夹下
2。在Android上下文中openFileInput()方法能够读取/data/data/包名/files文件夹下的文件
3,详细的实现过程与在J2SE环境中保存数据到文件里是一样的。 eg:
// openFileOutput()方法的第一參数用于指定文件名,不能包括路径分隔符“/” ,假设文件不存在。Android会自己主动创建
// 存放路径:/data/data/包名/files/jxn.txt
FileOutputStream outStream = context.openFileOutput("jxn.txt", Context.MODE_PRIVATE); SharedPreferences
1,Android提供了一个SharedPreferences类。它是一个轻量级的存储类。特别适合用于保存软件配置參数。
2。使用SharedPreferences保存数据,其最后是用xml文件存放数据,文件存放在/data/data/包名/shared_prefs文件夹下
3,context.getSharedPreferences(name,mode)方法的第一个參数用于指定该文件的名称,名称不用带后缀,Android会自己主动地加上.xml后缀。 // *** 储存数据到 /data/data/包名/shared_prefs/jxn.xml文件里 // /data/data/包名/shared_prefs/jxn.xml
SharedPreferences sp = context.getSharedPreferences("jxn", Context.MODE_PRIVATE); // 获得一个Editor对象
Editor edit = sp.edit(); // 存数据
edit.putString("number", number);
edit.putString("password", password); // 提交, 数据就保存到文件里了
edit.commit(); // *** 从 /data/data/包名/shared_prefs/jxn.xml文件里读取数据 SharedPreferences sp = context.getSharedPreferences("jxn", Context.MODE_PRIVATE); String number = sp.getString("number", null);
String password = sp.getString("password", null); 1.2 储存文件存放在SD卡中: // *** 储存数据到 /mnt/sdcard/jxn.txt文件里 // 推断当前的手机是否有sd卡;假设有SD卡,而且能够读写。则方法返回Environment.MEDIA_MOUNTED
String state = Environment.getExternalStorageState();
if(!Environment.MEDIA_MOUNTED.equals(state)) {
return false;
} String data = "test"; // 一般为 /mnt/sdcard 可是不同手机的sd卡的文件夹可能不同
File sdCardFile = Environment.getExternalStorageDirectory(); File file = new File(sdCardFile, "jxn.txt");
FileOutputStream fos = new FileOutputStream(file);
fos.write(data.getBytes());
fos.flush();
fos.close(); // *** 从 /mnt/sdcard/jxn.txt文件里读取数据 // 推断当前的手机是否有sd卡
String state = Environment.getExternalStorageState();
if(!Environment.MEDIA_MOUNTED.equals(state)) {
return null;
} File sdCardFile = Environment.getExternalStorageDirectory();
File file = new File(sdCardFile, "jxn.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String text = br.readLine();
br.close(); <!-- 设置写入和读取sd卡的权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Android下的数据存储与訪问 --- 以文件的形式的更多相关文章
- Android中的数据存储(二):文件存储 2017-05-25 08:16 35人阅读 评论(0) 收藏
文件存储 这是本人(菜鸟)学习android数据存储时接触的有关文件存储的知识以及本人自己写的简单地demo,为初学者学习和使用文件存储提供一些帮助.. 如果有需要查看SharedPreference ...
- android下的数据存储
android下数据存储的几种方式:(简单讨论) 1.文件 举例:登陆时“记住密码” 因为是基于Linux系统,直接建文件,文件会出现在项目工程:而手机登陆时,应该把文件放在手机里,通常数据放在dat ...
- Android下的数据存储与访问、权限
弹出吐司 在onCreate中可以先获取控件对象 /data/data/程序的包名/ 在这个目录下面进行文件的读写可能因为包名的改变而变得不可靠. this可以是Activity,也 ...
- Android网络编程之使用HTTP訪问网络资源
使用HTTP訪问网络资源 前面介绍了 URLConnection己经能够很方便地与指定网站交换信息,URLConnection另一个子类:HttpURLConnection,HttpURLConnec ...
- 67.Android中的数据存储总结
转载:http://mp.weixin.qq.com/s?__biz=MzIzMjE1Njg4Mw==&mid=2650117688&idx=1&sn=d6c73f9f04d0 ...
- Android Learning:数据存储方案归纳与总结
前言 最近在学习<第一行android代码>和<疯狂android讲义>,我的感触是Android应用的本质其实就是数据的处理,包括数据的接收,存储,处理以及显示,我想针对这几 ...
- Android中的数据存储
Android中的数据存储主要分为三种基本方法: 1.利用shared preferences存储一些轻量级的键值对数据. 2.传统文件系统. 3.利用SQLite的数据库管理系统. 对SharedP ...
- Android五种数据存储方式
android 五种数据存储 :SharePreferences.SQLite.Contert Provider.File.网络存储 Android系统提供了四种存储数据方式.分别为:SharePre ...
- Android——几种数据存储应用浅谈
(1)android中的数据存储主要有五种方式: 第一种.sharedPreferences存储数据, 适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型.基本类型的值.比如应用程序的各种配 ...
随机推荐
- 一点关于"fat model, skinny controller"的思考
导言 想来从事服务器端开发也有将近一年的时间,服务端开发不能忽略的一个架构就是MVC架构,但一开始作为小白的我对这些高大上的概念也是很迷惑,由于很长一段时间应对的业务也是十分简单,业务代码也是流水一样 ...
- [ Openstack ] Openstack-Mitaka 高可用之 Rabbitmq-server 集群部署
目录 Openstack-Mitaka 高可用之 概述 Openstack-Mitaka 高可用之 环境初始化 Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...
- [ Python - 8 ] 简单demo练习
练习1: 利用os模块编写一个能实现dir -l输出的程序(注意:dir /l是windows下命令) #!_*_coding:utf-8_*_ # Author: hkey import os, t ...
- 【 VSFTPD 】ftp 客户端问题
网络环境: 两个独立的内网环境,前端都有路由和防火墙的管控.要在这两个独立的内网使用ftp通过互联网进行通信. 首先,ftp server 服务端口默认修改为:2100 数据端口修改为:21000 将 ...
- inside a shard
fsync sync fsync/syncsync is a standard system call in the Unix operating system, which commits to d ...
- Selenium2+python自动化58-读取Excel数据(xlrd)【转载】
前言 当登录的账号有多个的时候,我们一般用excel存放测试数据,本节课介绍,python读取excel方法,并保存为字典格式. 一.环境准备 1.先安装xlrd模块,打开cmd,输入pip inst ...
- LaTeX的一些宏包及细节知识
文章来源:LaTeX的一些宏包及细节知识http://blog.chinaunix.net/uid-20289887-id-1710422.html ps:我的机器上软件并不能直接运行通,下面“代码” ...
- hdu6070
hdu6070 题意 给出 \(n\) 个数, \(\frac{x}{y}\) 表示某个区间不同数的个数除以区间的长度,求 \(\frac{x}{y}\) 最小值. 分析 设 \(size(l, r) ...
- 取消Gridvie中button的焦点
Gridview中添加button,onclick方法使得 GridView的setOnItemClickListener方法无效. 解决方法: 设置Button的XML布局文件,也就是自定义的Ada ...
- 【后缀数组】【二分答案】【差分】poj1743 Musical Theme
差分消除加减一个值得影响,貌似r二分上界要设成(n-2)/2?为啥? sa求不可重叠最长重复子串 给定一个字符串,求最长重复子串,这两个子串不能重叠.算法分析:这题比上一题稍复杂一点.先二分答案,把题 ...