Android开发学习——android存储
Android的存储
- Android中的数据存储方式及其存储位置



- SharedPrefrence存储
1). 位置

- 手机内部文件存储
- 手机外部文件存储
.png)
.png)


- Sqlite数据库存储



5). Android单元测试

- 远程服务器存储
4). HTTP协议:
a. 安装并配置tomcat
b. 将tomcat关联eclipse中
c. 创建一个动态的web project
d. 把需要直接访问的资源(jsp/apk/image)放在WebContent下
c. 可能需要创建Servlet/Filter
d. 运行
f. 访问: http://ip:8080/xxxx/index.jsp
6).实现联网请求功能的3步:
文件访问权限
* 指的是谁能访问这个文件
* 在Android中,每一个应用,都是一个独立的用户
* 使用10个字母表示 drwxrwxrwx
* 第一个字母:
* d:表示文件夹
* -:表示文件
* 第一组rwx:表示的是文件拥有者(owner)对文件的权限
* r:read,读
* w:write
* x:execute
* 第二组rwx:表示的是跟文件拥有者属于同一用户组的用户(grouper)对文件的权限
* 第三组rwx:表示的其他用户(other)对文件的权限
在内部存储空间中读写文件
小案例:用户输入账号密码,勾选“记住账号密码”,点击登录按钮,登录的同时持久化保存账号和密码
布局文件:
<LinearLayout 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"
tools:context=".MainActivity"
android:orientation="vertical" > <EditText
android:id="@+id/et1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="用户名:" /> <EditText
android:id="@+id/et2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="密 码:" /> <CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="记住用户名和密码" /> <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="login"
android:text="登 录" /> </LinearLayout>
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void login(View v){
EditText et1 = (EditText) findViewById(R.id.et1);
EditText et2 = (EditText) findViewById(R.id.et2);
String username = et1.getText().toString();
String pwd = et2.getText().toString();
// 判断用户是否勾选保存账号密码
CheckBox cb = (CheckBox) findViewById(R.id.checkBox1);
if(cb.isChecked()){
//将用户名和密码写到本地文件,用IO流来写
File file = new File("data/data/com.example.cunchu/info.txt");//内部存储空间的路径
FileOutputStream fos;
try {
fos = new FileOutputStream(file);
fos.write((username+"####"+pwd).getBytes());
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.print("登录成功!!!");
Toast.makeText(this,"登录成功!!!", Toast.LENGTH_SHORT).show();
}
}
public void read(){
try {
FileInputStream fis = new FileInputStream("data/data/com.example.cunchu/info.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String text = br.readLine();
String []s = text.split("####");
EditText et1 = (EditText) findViewById(R.id.et1);
EditText et2 = (EditText) findViewById(R.id.et2);
//读取到数据之后,回显至输入框
et1.setText(s[0]);
et2.setText(s[1]);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
运行结果:



使用路径api读写文件
getFilesDir()得到的file对象的路径是data/data/com.itheima.rwinrom2/files
* 存放在这个路径下的文件,只要你不删,它就一直在
getCacheDir()得到的file对象的路径是data/data/com.itheima.rwinrom2/cache
* 存放在这个路径下的文件,当内存不足时,有可能被删除
系统管理应用界面的清除缓存,会清除cache文件夹下的东西,清除数据,会清除整个包名目录下的东西
如果有时需要直接复制项目
需要改动的地方:
* 项目名字
* 应用包名
* R文件重新导包
在外部存储空间中读写文件
在内部存储读写和外部存储 读写 文件,都是用IO流读写,不同的是,路径不同。
Android开发学习——android存储的更多相关文章
- Android开发学习——android数据存储
Android的存储 Android中的数据存储方式及其存储位置 SharedPrefrence存储 1). 位置 /data/data/packageName/shared_pr ...
- Android开发学习——android体系结构
Android的体系结构采用了分层架构的思想, 从上层到底层共包括四层,分别是应用程序程序层.应用框架层.系统库和Android运行时和Linux内核. 一 应用程序层 该层提供一些核心应用程序包,例 ...
- Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制
一.需求 做一个类似QQ登录似的app,将数据写到ROM文件里,并对数据进行回显. 二.截图 登录界面: 文件浏览器,查看文件的保存路径:/data/data/com.amos.datasave/fi ...
- Android开发学习——Android项目的目录结构
Android项目的目录结构: 资源文件夹: 清单配置文件: Android的四大组件在使用前全部需要在清单文件中配置 <?xml version="1.0" encodin ...
- Android开发学习——android与服务器端数据交互
1.首先搭建服务器端. 使用MyEclipse开发工具 public class MyServlet extends HttpServlet { @Override protected void do ...
- Android开发学习——Android Studio配置SVN
一.基本配置 1. 下载这个,然后双击 安装,按下图这样选 然后 傻瓜式安装 2. 进入Android studio设置:Use Command Line Client 选择浏览到第1步你本地安装 T ...
- android开发学习 ------- android studio 同时用svn和git 进行代码管理 出现的问题
svn和git的工作机制: SVN 是集中式或者有中心式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要 ...
- android开发学习——android studio 引入第三方库的总结
http://www.jianshu.com/p/0c592fff5d89 总结的很溜
- Android开发学习——android反编译
第一种: 1.下载下边的三个jar包,对dex2jar和jd-gui进行解压 2.将需要反编译的apk后缀名改为.rar,然后进行解压 3.将解压后生成的classes.dex加入第一步解压后的dex ...
随机推荐
- Introduction of OpenCascade Foundation Classes
Introduction of OpenCascade Foundation Classes Open CASCADE基础类简介 eryar@163.com 一.简介 1. 基础类概述 Foundat ...
- js学习内容的整理
1.jquery动态添加Table中的一行 function addTableRow(tableId){var html = '<tr>\ ......\ </tr>" ...
- T-SQL:毕业生出门需知系列(五)
第5课 高级数据过滤 5.1 组合 WHERE 子句 第4课介绍的 WHERE 子句在过滤数据时都是用单一的条件. 5.1.1 AND 操作符 检索由供应商 DLL01 制造且价格小于等于 4 美元的 ...
- 如何用C#代码判断一个类的类型
var s = ""; s.GetType().IsClass; 来自为知笔记(Wiz)
- Linux模块
一.为什么要使用模块 由于linux使用的是整体结构,不是模块化的结构,整体结构实现的操作系统可扩展性差.linux为了扩展系统,使用了模块的技术,模块能够从系统中动态装入和卸载,这样使得linux也 ...
- CDH安装失败了,如何重新安装
1> 删除Agent节点的UUID # rm -rf /opt/cm-5.4.7/lib/cloudera-scm-agent/* 2> 清空主节点CM数据库 进入主节点的Mysql数据 ...
- Mac如何删除MySQL,Mac下MySQL卸载方法
在Mac下安装完MySQL之后,出现了无法启动的问题,多翻尝试依然不能解决问题,最后只能把它删掉. 如何在Mac下删除MySQL呢,只需要在终端执行如下命令就可以把MySQL在Mac下彻底删除干净了. ...
- 怎样录制屏幕并将结果保存为Gif
怎样录制屏幕 并将结果保存为GIF 大前天写文章,需要把PPT的翻转页面截成动态图.我一开始就想到保存文件肯定是GIF.但是如何生成呢?素材又从哪里来?以前自己感兴趣做过把一组连拍的图片做成动态图,再 ...
- 重温JSP学习笔记--JSTL标签库
以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...
- Android之ListView的getItemViewType和getViewTypeCount
PS:感觉这两个方法其实还是很容易理解的,也算是给我其他两个朋友写的吧,帮他们搞清楚这两个方法的用法和概念.同时还有一些小细节问题需要注意. 学习内容: 1.getItemViewType和getVi ...