android 内外部存储使用
1.android内部存储在/data/data/packagename/filename
但是输入容易出错,当然有现成的api可以调用:
写到file下:
File file = new File(getFilesDir(), "file.txt");
写到cache下:
File file = new File(getCacheDir(), "info.txt");
写文件的代码:
File file = new File(getCacheDir(), "info.txt");
FileOutputStream fos;
try {
fos = new FileOutputStream(file);
fos.write((string123).getBytes());
fos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2.android外部存储就是SD卡
1)其中为了兼容低版本, /sdcard、/mnt/sdcard、/storage/sdcard,是一样的
2)读写SD卡要加上权限:
1 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 2 3 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
3)android获得手机内置SD卡路径的API为:
Environment.getExternalStorageDirectory()
4)读写之前要判断SD卡的状态
//MEDIA_UNKNOWN:不能识别
//MEDIA_REMOVED:没有sd卡
//MEDIA_UNMOUNTED:sd卡没有挂载
//MEDIA_CHECKING:sd卡正在准备
//MEDIA_SHARED:这个比较特殊,现在SD卡是共享的,把手机拔下来就可以解决,原因可能就是手机和电脑都在访问外置SD卡.
//MEDIA_MOUNTED:sd卡已经挂载,只有这个是正常状态
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ //SD卡操作 }else{...}
5)读写SD卡的文件
默认写在/data/data/packagename/files/下
1 try { 2 FileOutputStream fos = openFileOutput("file.txt", MODE_PRIVATE);//mode可以用|符号 3 fos.write("内容".getBytes()); 4 fos.close(); 5 } catch (Exception e) { 6 // TODO Auto-generated catch block 7 e.printStackTrace(); 8 }