用FileOutputSteam写U盘或者SD卡,写完立即拔出U盘会发现有时候写操作不成功,这是因为在写U盘或者SD卡的时候,系统会通过另外一个进程去把数据sync到U盘上,如果文件较大,需要的时间比较多,如果这时候拔出U盘,就会出现数据未写完全的问题,所以在FileOutputSteam close之前可以使用先进行sycn的动作:
File file = new File(strings[0]);
FileOutputStream os = null;
try {
os = new FileOutputStream(file);
mPicSrc.compress(Bitmap.CompressFormat.PNG, 0, os);
os.flush();
os.getFD().sync();
os.close();
return true;
} catch (IOException e) {
e.printStackTrace();
try {
if(os != null)
os.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}