当前位置: 代码迷 >> Android >> android 模拟SD卡资料操作
  详细解决方案

android 模拟SD卡资料操作

热度:30   发布时间:2016-05-01 14:14:20.0
android 模拟SD卡文件操作
Android平台主要通过java.io.FileInputStream和java.io.FileOutputStream两个类来实现对文件的读写,java.io.File类则用来构造一个具体指向某个文件或者文件夹的“对象”(特此注明,注意)。

    第个应用程序所在的包都会有一个么有的存储数据的目录(文件夹),只有属于这个包中的应用程序才有写入的权限,每个包中应用程序的私有数据目录位于Android系统中的绝对路径/data/data/<包名>目录中。除了么有数据目录,应用程序还拥有/sdcard目录即Android设备上的SD卡的写入权限。文件系统中其他的系统目录,第三方的应用程序都是不可写的。

    对SD卡的操作其实就是普通的文件操作,不过需要在AndroidManifest.xml中声明权限。比如:

1.加入sdcard操作权限;

2.确认sdcard的存在;

3.不能直接在非sdcard的根目录创建文件,而是需要先创建目录,再创建文件;

实例:

(1)在AndroidManifest.xml添加sdcard操作权限

1: <!-- sdcard权限 -->
2: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

(2)变量声明:

1: private final static String PATH = "/sdcard/digu";
2: private final static String FILENAME = "/notes.txt";

(3)向sdcard写文件

1: 
4: private void onWrite() {
5: try {
6: Log.d(LOG_TAG, "Start Write");
7: //1.判断是否存在sdcard
8: if (Environment.MEDIA_MOUNTED.equals(Environment
9: .getExternalStorageState())) {
10: //目录
11: File path = new File(PATH);
12: //文件
13: File f = new File(PATH + FILENAME);
14: if(!path.exists()){
15: //2.创建目录,可以在应用启动的时候创建
16: path.mkdirs();
17: }
18: if (!f.exists()) {
19: //3.创建文件
20: f.createNewFile();
21: }
22: OutputStreamWriter osw = new OutputStreamWriter(
23: new FileOutputStream(f));
24: //4.写文件,从EditView获得文本值
25: osw.write(editor.getText().toString());
26: osw.close();
27: }
28: } catch (Exception e) {
29: Log.d(LOG_TAG, "file create error");
30: }
31: }
  相关解决方案