android - 将文件保存在 SD 卡上,写入文件大小 0

标签 android image file sd-card

我在将图像保存到 SD 卡时遇到问题。我可以在 SD 卡上看到文件,但文件为空(大小为 0)。我尝试将其保存在手机内存中,但效果很好。这是我的代码。

    Imagewritter {

       public static boolean writeAsJPG(Context context, Bitmap bitmap,
    String filename) {
       filename = filename + ".jpg";
       File path = Environment.getExternalStorageDirectory();

    File f = new File(path, filename);
    FileOutputStream fos = null;

    try {
        fos = new FileOutputStream(f);
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    try {
        fos = context.openFileOutput(filename, Context.MODE_WORLD_READABLE);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        Log.d(TAG, "file not found");
        return false;
    }

    bitmap.compress(CompressFormat.JPEG, quality, fos);
    try {
        fos.flush();
        fos.close();
    } catch (IOException e) {
        Log.d(TAG, "error closing");
        e.printStackTrace();
    }
    }

这是位图的来源代码。

    DrawingView = (drawing) findViewById(R.id.drawing_view);
    drawingBitmap = (Bitmap) DrawingView.getBitmap();
    String idName = timeStampText;
    //save Image as JPG
    ImageWritter.writeAsJPG(getApplicationContext(), drawingBitmap, idName);

最佳答案

我认为你必须在 list 文件中添加这些权限

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

关于android - 将文件保存在 SD 卡上,写入文件大小 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9643661/

相关文章:

android - 如何在android中移动和动画图像?

具有视差背景图像的 Android ViewPager

android - 如何在 Canvas 上裁剪选定区域的位图?

java - 如何在 Java 中将(序列化)数组的特定切片从磁盘上的文件读取到内存中?

c - 如何使用 fgets/read/fread 识别 double\n\n

python - 如何按顺序获取路径名、子目录名和文件列表?

Android 项目未解析任何静态 Assets

javascript - 如何在 Node.js 中将灰度图像矩阵转换为图像

asp.net - System.Drawing.Image.FromFile() 上的内存不足异常

android:带缩略图的 ListView