如何在手机上保存数据:
1. android的文件系统使用的是linux的文件系统(没有c盘 d盘..)
2. android下应用程序的路径和javase不同,直接保存在根目录下会报错.这是因为如果大家都能保存到根目录,那么别的应用也能读取到你存储的文件信息,这样就造成了不安全性
3.保存数据到文件中一般有两个方法
1)保存到/data/data/应用的包名/files目录
数据选型:一般保存的是重要的信息、用户信息、应用的配置。
手机如何清除应用保存的数据:设置->应用程序->应用详情->clear data (删除cache目录 删除files目录 )
2)保存到/data/data/应用的包名/cache目录:
数据选型: 一般可以用来缓存不重要的数据、保存图片。
手机如何清除应用保存的数据:设置->应用程序->应用详情->clear cache (删除cache目录下的文件 )
手机存储目录的划分:
1.手机内部存储:
创建的文件在手机内部存储空间,默认的权限全部私有,只有自己的应用程序可以访问。别的应用程序不可以访问
Environment.getDataDirectory(); 返回/data/..
file目录和 cache目录的容量有限,价格比较贵,访问速度快
2.手机外部存储:
sd卡(手机常见插拔的容量卡) 容量大,可以更换,价格便宜。
Environment.getExternalStorageDirectory(); 返回 /mnt/sdcard/..或/storage/emulated/0等
<span style="white-space:pre"> </span>//1.内部存储
File dataFile = Environment.getDataDirectory();
Log.v("内部存储", dataFile.getAbsolutePath());//打印结果:/data
//2.外部存储(SD 卡)
//mnt.sdcard
// /storage/emulated/0
File externalFile = Environment.getExternalStorageDirectory();
Log.v("外部存储", externalFile.getAbsolutePath());
SD卡读写的操作:
1. 将文件写入到SD卡上 首先要判断SD卡是否装载
2. 写一个空文件到Sd卡上
3. 因为读写SD卡是敏感的行为 需要用户同意 所以需要使用”使用权限”
找到AndroidMenifest.xml文件,在后面添加使用权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//写一个空文件到sd卡上
public void downLoadClick(View v) {
try {
//1. 首先要判断SD卡是否装载
String externalState = Environment.getExternalStorageState();
if(externalState.equals(Environment.MEDIA_MOUNTED)){
//Environment.MEDIA_MOUNTED 表示SD卡已经安装在手机上
//创建一个空的文件
File externalFile = Environment.getExternalStorageDirectory();
File file = new File(externalFile, "空文件.avi");
//字节流
FileOutputStream fos = new FileOutputStream(file);
byte[] buffer = new byte[1024*1024];
for (int i = 0; i < 5; i++) {
fos.write(buffer);
}
fos.close();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
1.如何创建被其他应用访问的文件:
让别的程序访问我们程序的数据 openFileOutput("文件名",“访问模式”);//openFileInput()读进来
访问模式:
MODE_WORLD_READABLE:别的应用程序可以读取你的文件
MODE_WORLD_WRITEABLE:别的应用程序可以写入你的文件
MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE:别的应用程序可以对你的文件读写
2.文件系统的功能:
上图中,Permissions下面对应有10个权限:
第一个位置:文件的属性,d 表示文件夹,- 表示文件
2-4的位置:能否在自己的应用中操作该文件(r w x -)
5-7的位置:在同个组内的应用能否访问该文件(r w x -)
8-10的位置:其他应用能否访问(r w x -)
其中,r 表示读功能,w 表示写功能,x 表示执行功能,- 表示不能执行