将图像从原始文件夹复制到外部SD卡?

时间:2014-03-12 18:53:28

标签: android

我使用此代码,但它在文件输出流失败。 当我创建一个静态void时,getResources将失败。

public void copy (Context context) {
InputStream in = getResources().openRawResource(R.raw.high1);
FileOutputStream out = new FileOutputStream("/sdcard/pic1.jpg");
byte[] buff = new byte[1024];
int read = 0;

try {
   while ((read = in.read(buff)) > 0) {
      out.write(buff, 0, read);
   }
} finally {
     in.close();

     out.close();
}

}

1 个答案:

答案 0 :(得分:0)

getResources()在将其更改为静态时不会失败,修改行:

  

InputStream in = getResources()。openRawResource(R.raw.high1);

要:

  

InputStream in = context.getResources()。openRawResource(R.raw.high1);

另外,引用CommonsWare:

  

从来没有HARDCODE PATHS。使用getExternalFilesDir()或Environment.getExternalStoragePublicDirectory()或类似的东西来获取外部存储上的目录。