我是Android新手开发者。我使用通用图像加载器加载了一个图像,我想将它保存在我的SD卡上。文件是在所需目录中使用正确的文件名创建的,但它的大小始终为0.我做错了什么?
相关摘录如下:
PS:图像已存在于磁盘上,但未从Internet下载。
private void saveImage(String imageUrls2, String de) {
String filepath = Environment.getExternalStorageDirectory()
.getAbsolutePath();
File SDCardRoot = Environment.getExternalStorageDirectory()
.getAbsoluteFile();
String filename = de;
File myDir = new File(SDCardRoot+"/testdir");
Bitmap mSaveBit = imageLoader.getMemoryCache();
File imageFile = null;
try {
//create our directory if it does'nt exist
if (!myDir.exists())
myDir.mkdirs();
File file = new File(myDir, filename);
if (file.exists())
file.delete();
FileOutputStream fileOutputStream = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fileOutputStream);
bos.flush();
bos.close();
} catch (IOException e) {
filepath = null;
e.printStackTrace();
Toast.makeText(getApplicationContext(),
R.string.diskful_error_message, Toast.LENGTH_LONG)
.show();
}
Log.i("filepath:", " " + filepath);
}
答案 0 :(得分:1)
是的,您的代码仅在sdcard_root / testdir / de上创建一个文件,并且没有向它写任何内容。 “imageUrls2”是源图像文件吗?如果是,您可以使用BufferedInputStream打开该文件,从BufferedInputStream读取数据,并使用bos.flush()和bos.close()之前的bos.write()将它们复制到输出文件。
希望它有所帮助。