首先分为两大部分:1.写入手机内存 2.写入sd卡
1.第三方安卓程序都安装在"/data/data/包名"目录下该目录下有files文件夹,和chche文件夹
files文件夹用来盛装应用的数据,在系统中叫做应用的数据,”/data/data/包名“是应用自己的空间,
不需要权限就可以操作此文件夹的内容,
cache文件夹是应用的缓存,一些清理软件可以清除掉软件的cache文件夹的内容
2.在程序中读写“/data/data/包名”文件夹的内容
1.写入内容
String path="/data/data/包名/files/myfile.txt";
File file=new File(path);
try {
FileOutputStream fos=new FileOutputStream(file,true);
fos.write("我是将要写入文件的数据".getBytes());
fos.flush();
} catch (IOException e) {
e.printStackTrace();
}
我们将一行字写入files文件夹下的file.txt文件下
其中数据部分所占的空间就是我们在files文件夹下写的文件
缓存所占的大小就是我们在cache文件夹下文件所占的大小,我这里files文件夹下没有文件
2.读取文件同理,就是简单的io读写
String path="/data/data/包名/files/myfile.txt";
File file=new File(path);
try {
String str="";
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(file)));
str=br.readLine();
System.out.println(str);
} catch (IOException e) {
e.printStackTrace();
}
3.可是我们的包名可能会被改变,所以这里我们不能写死了
安卓为我们提供了如何自动获得这两个路径的方法,activity父类的父类android.content.ContextWrapper身上有两个方法