android上的文件保存输出流

android上的文件保存输出流,android,android-camera,storage,Android,Android Camera,Storage,我正在制作一个可以拍照的android应用程序。我已经写了一些代码来保存应用程序拍摄的照片。我要保存文件的目录位于内部存储器和名为DCIM的文件夹中。然而,每次我试图保存照片时,应用程序都会崩溃。下面是我的代码: FileOutputStream outStream = null; try { outStream = new FileOutputStream(String.format(

我正在制作一个可以拍照的android应用程序。我已经写了一些代码来保存应用程序拍摄的照片。我要保存文件的目录位于内部存储器和名为DCIM的文件夹中。然而,每次我试图保存照片时,应用程序都会崩溃。下面是我的代码:

FileOutputStream outStream = null;
                     try {
                         outStream = new FileOutputStream(String.format(
                                 "sdcard/DCIM/jgjk.jpg", System.currentTimeMillis()));
                         outStream.write(data);
                         outStream.close();
                         Log.d("Log", "onPictureTaken - wrote bytes: " + data.length);
                     } catch (FileNotFoundException e) {
                         e.printStackTrace();
                     } catch (IOException e) {
                         e.printStackTrace();
                     } finally {
                     }
代码有什么问题吗?

这样就可以了

在onActivityResult中获取位图

public void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
         if(requestCode==PIC_CROP)
        {
             if(resultCode==RESULT_OK)
             {
             Bundle extras = data.getExtras();
                if (extras != null) {               
                    Bitmap bmp = extras.getParcelable("data");
                    savePhoto(bmp);
                }
             }
        }

}


public void savePhoto(Bitmap bmp)
        {
        dir = Environment.getExternalStorageDirectory().toString() + "/DCIM/"; 
        File newdir = new File(dir); 
        newdir.mkdirs();
        FileOutputStream out = null;

        //file name
        Calendar c = Calendar.getInstance();
        String date = fromInt(c.get(Calendar.MONTH))
                    + fromInt(c.get(Calendar.DAY_OF_MONTH))
                    + fromInt(c.get(Calendar.YEAR))
                    + fromInt(c.get(Calendar.HOUR_OF_DAY))
                    + fromInt(c.get(Calendar.MINUTE))
                    + fromInt(c.get(Calendar.SECOND));
        File imageFileName = new File(newdir, "crop_"+date.toString() + ".jpg");

        try
        {
         out = new FileOutputStream(imageFileName);
         bmp.compress(Bitmap.CompressFormat.JPEG, 100, out);
         out.flush();
         out.close();
         out = null;
        } catch (Exception e)
        {
        e.printStackTrace();
        }
        }


public String fromInt(int val)
{
return String.valueOf(val);
}

你看过异常的日志了吗?你想让String.formatsCard/DCIM/jgjk.jpg,System.currentTimeMillis做什么?迈克尔:是的,似乎不对。我在这里寻找建议。正如帕尼尼提到的,请附上你们的日志和例外看看这个答案谢谢拉詹。我很感谢你的帮助。是的,欢迎..如果你发现有用的向上投票,那么其他人可能会受益。我目前的声誉不允许我向上投票任何帖子或评论。拉詹:我应该用什么类型初始化object dir?以及eclipse show,它不能为数组类型byte调用getExtras。