Android 图像文件未写入sd卡

Android 图像文件未写入sd卡,android,Android,我正在尝试将一个图像文件写入sd卡上的目录,但它似乎不起作用。当我将图像读入bytearray时,它不会将内容写入sd卡。代码如下: public void addRecord(){ long id; out = new ByteArrayOutputStream(128); bm.compress(CompressFormat.JPEG, 100, out); File sdCard = Environment.get

我正在尝试将一个图像文件写入sd卡上的目录,但它似乎不起作用。当我将图像读入bytearray时,它不会将内容写入sd卡。代码如下:

public void addRecord(){

        long id;

        out =  new ByteArrayOutputStream(128);
        bm.compress(CompressFormat.JPEG, 100, out);

          File sdCard = Environment.getExternalStorageDirectory();
          File dir = new File(sdCard + File.separator + "studentpics");

          if(!dir.exists()){

          dir.mkdir();  

            }

          File f = new File(sdCard + File.separator + dir.toString() + File.separator +  strStudentName + ".png");

          try {
            f.createNewFile();
            FileOutputStream fos = new FileOutputStream(f);
            fos.write(out.toByteArray());

            fos.close();



        } catch (IOException e) {

            e.printStackTrace();
        }
    }

您可能需要请求写入外部存储器的权限。尝试将此行添加到AndroidManifest.xml

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

尝试更换

File f = new File(sdCard + File.separator + dir.toString() + File.separator +  strStudentName + ".png");

这可能是原因(调用sdCard.toString()),但是,更好的方法是执行
File pics=new File(sdCard,“studentPics”)
,对于另一个
文件,picture=新文件(pics,strStudentName+“.png”)
File f = new File( dir.toString() + File.separator +  strStudentName + ".png");