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         }

 

posted @ 2015-03-14 23:58  firerdong  阅读(146)  评论(0编辑  收藏  举报