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 = 32768
Context.MODE_WORLD_READABLE = 1
Context.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 ...
随机推荐
- uni-app中nvue (weex) 注意事项
前言 uni-app 是 DCloud 出品的新一代跨端框架,可以说是目前跨端数最多的框架之一了,目前支持发布到:App(Android/iOS).H5.小程序(微信小程序/支付宝小程序/百度小程序/ ...
- 【3】Git命令
个人推荐的Git知识学习网站:https://git-scm.com . git常用操作图 init -> add -> commit -> remote -> push 初始 ...
- golang整数与小数间的加减乘除
我们假设你需要 整数与小数一起进行运算,或者 整数除以整数 得到小数这种运算 如果你使用了decimal, 那么之后所有的运算你都必须使用decimal, 因为通过它计算出来的结果的类型统统为deci ...
- Google C++单元测试框架GoogleTest---AdvancedGuide(译文)
上篇在这里: 下篇在这里.
- idea启动卡死,项目界面一直processing
1 原因 因为上次退出项目,非正常退出,导致索引生成有问题. 2 解决办法 删除项目根目录下 .idea文件夹,然后重新打开,重新indexing生成索引文件
- 前端基础(九):SweetAlert(弹出框)
简介 SweetAlert是一款很好用的弹出框框架 下载 点我下载 导入 博主用的是bootstrap-sweetalert,所以要依赖bootstrap,导入前先导入原生jQuery以及bootst ...
- miguowangluozhan
加紧备战 美国欲将全球拖入网络战争 人民日报 06-1405:01 去年,美国国防部发布的网络空间战略强调了“前沿防御(Defense forward)”理念.这被外界解读为美国军方将在他国而非美国本 ...
- 区块链火爆,再不知道Golang就晚了
Golang,也叫Go语言,是2009年刚刚被发发布的一门新语言. 区块链,是2019年我国提出的新战略. 一个不争的事实就是,大多数从事区块链开发的小伙伴都是用Golang,大多数招聘区块链技术工作 ...
- Python---virtualenv + Tensorflow + 安装jupyter notebook
一.ubuntu系统下安装完caffe后,安装 jupyter notebook. 在终端中执行,安装指令: sudo pip install jupyter 安装完成后运行 notebook : j ...
- Gym - 101170B British Menu SCC点数目不超过5的最长路
题意其实就是给你一个有向图 但是每个SCC里面的点数目不超过5 求最长路 首先暴力把每个SCC里的每个点的最长路跑出来 然后拓扑排序dp 然后因为tarjan 搜索树出来的SCC是拓扑排好序的 可以直 ...