Android从文件目录中写入和读取图片
16lz
2021-01-23
要将文件写入储存,首先有在配置文件中去设置权限:
<span style="white-space:pre"></span><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!-- 外部储存可写 --> <uses-permission android:name="android.permission.READ_CONTACTS"/>
/* * 访问外部储存私有区域 * 路径为 getExternalFilesDir() /mnt/sdcard/Android/data/com.example.call/files * getExternalCacheDir() /mnt/sdcard/Android/data/com.example.call/cache */public void writeFileToExternalPrivate(){String fileDir = getContext().getExternalFilesDir(Environment.DIRECTORY_MUSIC).getAbsolutePath();Log.v("test", fileDir);String cacheDir = getContext().getExternalCacheDir().getAbsolutePath();File mapFile = new File(cacheDir+File.separator+"map"); //再将图片加载到目录之前先创建Mylog.d("00000000"+mapFile.mkdir());Bitmap bitmap = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.img_person);File file = new File(cacheDir+File.separator+"map","2.png"); //将图片保存到刚创建好的目录下try {FileOutputStream out = new FileOutputStream(file);bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);out.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}Log.v("test", cacheDir);}
从指定目录中读取文件:
<span style="white-space:pre"></span>public void readImgFromFile(){Bitmap bitmap = BitmapFactory.decodeFile(getContext().getExternalCacheDir().getAbsolutePath()+File.separator+"map"+File.separator+"2.png");String cacheDir = getContext().getExternalCacheDir().getAbsolutePath();File file = new File(cacheDir+File.separator+"map","3.png"); //将图片保存到刚创建好的目录下try {FileOutputStream out = new FileOutputStream(file);bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);out.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}