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: }