Android的内部存储
路径:/data/data/包名/
this.getCacheDir() = /data/data/com.example.qq/cache/
getFilesDir() = /data/data/com.example.qq/files/
特点:当系统存储空间不足时,会自动删除cache目录里的文件
在应用层程序列表中点击清除数据就可以清除应用里所有的数据
直接操作流,files目录
this.openFileInput("config.txt");
this.openFileOutput("config.txt", 0);
1. 文件只能存储在自己应用程序私有的文件夹下,别的应用程序无法访问2. this.getFilesDir() == /data/data/包名/files/3. this.getCacheDir()== /data/data/包名/cache/4. this.openFileInput();5. this.openFileOutput();
openFileOutput()方法的第二参数用于指定操作模式,有四种模式,分别为:
Context.MODE_PRIVATE = 0Context.MODE_APPEND = 32768Context.MODE_WORLD_READABLE = 1Context.MODE_WORLD_WRITEABLE = 2
//实例代码qq登录,用内部存储存储qq账户和密码
package com.example.qq;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends Activity {
private EditText et_qq;
private EditText et_psw;
private CheckBox cb;
private Button btn;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置布局
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
et_qq = (EditText) findViewById(R.id.qq);
et_psw = (EditText) findViewById(R.id.psw);
cb = (CheckBox) findViewById(R.id.checkBox1);
// 设置事件
readData();
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String qq = (String) et_qq.getText().toString().trim();
String psw = (String) et_psw.getText().toString().trim();
if (TextUtils.isEmpty(qq) || TextUtils.isEmpty(psw)) {
Toast.makeText(MainActivity.this, "QQ号码和密码不能为空", 0).show();
return;
}
String s = qq + "==" + psw;
boolean flag = cb.isChecked();
try {
if (flag) {
FileOutputStream fos = openFileOutput("qq.txt", 0);
fos.write(s.getBytes());
fos.close();
Toast.makeText(MainActivity.this, "成功保存", 0).show();
}
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(MainActivity.this, "失败了", 0).show();
}
}
});
}
private void readData() {
try {
FileInputStream fis = openFileInput("qq.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String s = br.readLine();
String[] split = s.split("==");
String qq = split[0];
String psw = split[1];
et_qq.setText(qq);
et_psw.setText(psw);
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Android的内部存储的更多相关文章
- Android 在内部存储读写文件
文件读写操作* Ram内存:运行内存,相当于电脑的内存* Rom内存:内部存储空间,相当于电脑的硬盘* sd卡:外部存储空间,相当于电脑的移动硬盘在内部存储空间中读写文件>小案例:用户输入账号密 ...
- Android file内部存储
通过file=openFileOutput()获得,将数据存储在data/data/+包名+files下面. 代码如下: MainActivity.java: import android.os.Bu ...
- 彻底了解android中的内部存储与外部存储
我们先来考虑这样一个问题: 打开手机设置,选择应用管理,选择任意一个App,然后你会看到两个按钮,一个是清除缓存,另一个是清除数据,那么当我们点击清除缓存的时候清除的是哪里的数据?当我们点击清除数据的 ...
- 大过年的,不下班的,上个Android文件操作类(内部存储和sd卡均可)
package com.kkdiangame.UI.res; import java.io.ByteArrayOutputStream; import java.io.File; import jav ...
- (转)Android如何编程设置APP安装位置(外部存储或内部存储)?
Beginning with API Level 8, you can allow your application to be installed on the external storage ( ...
- Android中将Bitmap对象以PNG格式保存在内部存储中
在Android中进行图像处理的任务时,有时我们希望将处理后的结果以图像文件的格式保存在内部存储空间中,本文以此为目的,介绍将Bitmap对象的数据以PNG格式保存下来的方法. 1.添加权限 由于是对 ...
- 彻底理解android中的内部存储与外部存储
我们先来考虑这样一个问题: 打开手机设置,选择应用管理,选择任意一个App,然后你会看到两个按钮,一个是清除缓存,另一个是清除数据,那么当我们点击清除缓存的时候清除的是哪里的数据?当我们点击清除数据的 ...
- android中的文件操作详解以及内部存储和外部存储(转载)
原文链接:http://m.blog.csdn.net/article/details?id=17725989 摘要 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安 ...
- Android SDCard和内部存储中gcc编译后的可执行文件无法运行提示 cannot execute - Permission denied
原因是mount的方式问题,root后运行 su mount -o rw,remount /mnt/sdcard //SDCard mount -o rw,remount /mnt/interna ...
随机推荐
- 【3】Git命令
个人推荐的Git知识学习网站:https://git-scm.com . git常用操作图 init -> add -> commit -> remote -> push 初始 ...
- STM32写选项字节(option bytes)的正确姿势
STM32 的 Flash information block 部分,包含有特殊的选项字节,可以用于系统配置等信息, 其中还有两个有效字节(实际四个字节,两个是校验字节)的用户自定义数据字节. 在尝试 ...
- django的几种缓存配置
前言 首先说,为什么要用缓存的,由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存 ...
- Django的配置模板路径
Django的配置模板路径 找到settings.py 配置静态目录: 注:创建静态文件名就用static 不要用别的. 两个函数. return redirect ('http//:www.b ...
- Linux系统从新手到运维老鸟学习指南
Linux是在1990年底到1991年由芬兰大学的学生LinusTorvalds利用Minix操作系统作为开发平台编写了内核,目前由世界各地的爱好者共同开发和维护的与UNIX兼容的操作系统,也是自由和 ...
- touchgfx -- Integration
将UI连接到系统 在大多数应用程序中,UI需要以某种方式连接到系统的其余部分,并发送和接收数据.这可以与硬件外围设备(传感器数据,A / D转换,串行通信等)接口,也可以与其他软件模块接口. 本文介绍 ...
- ReaderWriterLockSlim使用示例
/// <summary> /// ReaderWriterLockSlim使用示例 /// </summary> internal sealed class Transact ...
- TCP 的三次握手和四次挥手,TCP 的流量控制和拥塞控制
70.TCP协议的三次握手与四次挥手70.1.TCP报文结构 1.源端口号:表示发送端端口号,字段长为16位. 2.目标端口号:表示接收端口号,字段长为16位. 3.序列号:表示发送数据的位置 ...
- Python项目列表
70个Python项目列表: 1.[Python 图片转字符画]2.[200行Python代码实现2048]3.[Python3 实现火车票查询工具]4.[高德API+Python解决租房问题 ]5. ...
- poj1236 Network of Schools(SCC缩点+结论推导)
第一问简单不讲. 第二问简化后问题是给一张DAG求最少添加几条边使得DAG变成一个SCC.首先所有中间点(有入度有出度)肯定直接顺着走到无出度点,所以肯定是无出度点连向无入度点. 把无入度点作为点集S ...