【发布时间】:2014-02-10 16:34:27
【问题描述】:
我正在尝试将有效图像 (jpg) 从资产文件夹复制到 sdcard。 我对清单具有写入权限(和读取)。 这是我使用的功能,并为其提供资产文件夹中列出的“image.jpg”。 当我转到外部存储目录的路径时,我可以看到副本已制作,并且有一个“image.jpg”文件,但是,它不是有效的图像,因为我无法打开它。
private void copyFile(String fileName)
{
try
{
File f = new File(Environment.getExternalStorageDirectory() + "/" + fileName);
if (f.exists())
{
return;
}
InputStream in = getResources().getAssets().open(fileName);
OutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory() + "/" + fileName);
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1)
{
out.write(buffer, 0, read);
}
in.close();
out.flush();
out.close();
}
catch (IOException e)
{
Toast.makeText(/* getActivity() */this, "Failed to copy file: " + fileName, Toast.LENGTH_SHORT).show();
}
}
任何帮助将不胜感激:)
【问题讨论】:
-
你把写权限放在清单里了吗?
-
你是用模拟器还是设备做这个?
-
复制的图片大小是否非零?
-
检查文件大小,是否相同?
-
在第一行中,我写道我将权限放入清单中。正如我所说,在真实设备上运行,图像是有效的。文件大小相同。
标签: android android-sdcard android-assets