Android存储文件

LiYajie: 2021-04-26 Android

需要先授权文件写入和读取权限

AndroidManifest.xml

...
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
...

FileUtils.java

// Bitmap图报错到系统相册
public static String bitmapSave(Context context, Bitmap bitmap) {
  return MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmap, "扫码照片", "二维码图片");
}

// 保存图片到文件管理对应的app下的文件夹下
public static String bitmapSaveToStorage(Context context, Bitmap bitmap) {
  File galleryPath = context.getExternalFilesDir(Environment.DIRECTORY_DCIM + File.separator + "pic" + File.separator);
  // 如果文件夹不存在, 则创建
  if (!galleryPath.exists()) {
      galleryPath.mkdir();
  }

  // 把时间戳作为文件名字
  String fileName = System.currentTimeMillis() + ".jpg";
  File file = new File(galleryPath, fileName);

  try {
      // 创建文件输出流
      FileOutputStream fos = new FileOutputStream(file);
      // 讲bitmap写入流, 并质量压缩80%
      bitmap.compress(Bitmap.CompressFormat.JPEG, 80, fos);
      fos.flush();
      fos.close();
  } catch (Exception e) {
      e.printStackTrace();
      return null;
  }

  return file.getAbsolutePath(); // 返回文件的绝对路径
}
LiYajie 发布于: 2021-04-26