1.文件存储,将文件存储在手机自带的内存中
示例:
/** * 保存文件 * @param name 文件名 * @param content 文件内容 */ public void save(String name, String content) throws Exception{ Log.d(TAG,"cache path :" + context.getCacheDir().getAbsolutePath());//获得缓存的dir Log.d(TAG,"file dir path :" + context.getFilesDir().getAbsolutePath());//获得当前文件的dir FileOutputStream fos = context.openFileOutput(name, Context.MODE_PRIVATE); fos.write(content.getBytes()); fos.close(); }
a.私有操作模式:Context.MODE_PRIVATE,采用此种操作模式创建的文件,有2个特性,此文件以覆盖的方式新建文件,而且创建的文件只能让当前应用程序访问,其他应用程序不能访问
b.追加操作模式:Context.MODE_APPEND,采用这种方式创建的文件,只能让当前应用程序访问,采用追加的方式写文件
c.可读操作模式:Context.MODE_WORLD_READABLE,所有应用程序都能访问,但只能读,不能写
d.可写操作模式:Context.MODE_WORLD_WRITEABLE,所有应用程序都可写,但不能读出数据
另外,如果想让其他所有的应用程序即可读,也可写,可以直接将操作模式相加,例如:Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE
2.将文件存储在sdcard中
示例:
/** * 保存文件 * @param name 文件名 * @param content 文件内容 */ public void saveToSDCard(String name, String content) throws Exception{ //尽量不要直接写/mnt/sdcard, 因为1.5,1.6之前的版本不是这个路径,而是/sdcard路径 /*File file = new File("/mnt/sdcard/hello1/"); if(!file.exists()){ file.mkdirs(); }*/ //通过这个api可以获得存储设备的路径 File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()); file = new File(file.getAbsolutePath() + "/" + name); FileOutputStream fos = new FileOutputStream(file); fos.write(content.getBytes()); fos.close(); }
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){//可存储 //这个文件能被任何应用程序访问 f.saveToSDCard("helo.txt", "save to sdcard :hello, world"); }else if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED_READ_ONLY)){ //仅仅可读 Log.d("log", "磁盘写保护!!!"); }
<!-- 挂在文件系统 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 向sdcard写入数据 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />