android的内部存储使用,所谓内部存储也就是往手机内存里面存储,这里要说重要一点,内部存储属于应用本身,若此应用被卸载,则通过内部存储,存储的数据都将消失。
---------------------------------------------------------
存储数据代码:
OutputStream os = null;
try {
//打开内部存储(往手机内存存储东西)
/**
* "user_files" : 文件名称
* MODE_PRIVATE : 操作文件的模式 ,(共有四种)私有模式,只有本应用可以进行读取操作
* Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
* Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
* Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
* MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
*/
os = openFileOutput("user_files", MODE_PRIVATE);//
os.write("我是内容".getBytes());//此处和普通IO操作无异,所以不进行大规模演示了。。
} catch (Exception e) {
e.printStackTrace();
}finally{
if(os!=null){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
核心代码其实就三行:通过系统提供的openFileOutput()方法获取输入流,然后IO操作输入数据,最后关闭。由于习惯,必须得把IO操作写规范了,所以才使得代码这么长,见谅。
存储的数据在:/data/data/<应用包名>/files ,文件夹下面: 一开始没有此文件夹,第一次创建文件的时候会自动生成此文件夹
文件内容:
读取数据:
FileInputStream fis = null;
try {
//用来保存数据
StringBuilder sb = new StringBuilder();
//获取输入流
fis = openFileInput("user_files");
//循环取数据
byte[] buff =new byte[1024];
int len = 0;
while((len = fis.read(buff))!=-1){
sb.append(new String(buff,0,len));
}
//输入日志
Log.i("MainActivity", sb.toString());
} catch (Exception e) {
e.printStackTrace();
}
重要的也是通过系统方法:openFileInput(String filename)来获取输入流,然后进去IO操作就行了
数据:
-------------------------------------------------------
原创,我在这里说明一下,这里的例子都是非常简单的例子,更适合初学者,只有先学会用,才能研究更深层次的东西,初学者千万不要陷入诸如每个参数到底是什么意思,这里不这样,如果那样会怎么样,这是无穷无尽的问题,非常影响入门,只有用熟悉之后,才更容易的去纠结这些东西,所以我在这里不写这些东西了。只适合初学者看看的例子。。。