首先,需要向Android模拟器的SD卡写入文件,就需要获得权限,所以需要在AndroidManifest.xml文件中注册权限,使用的方法是:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
这个例子的作用是点击第一个按钮把图像文件存储到SD卡中,点击第二个按钮利用下面的ImageView显示Sd卡中的内容,本示例的截图如下:
使用的源代码如下:
public class Sdcard_FileInOutput_Activty extends Activity {
private Button button;
private Button button2;
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sdcard__file_in_output__activty);
button=(Button)findViewById(R.id.buttonsave);
button2=(Button)findViewById(R.id.buttonread);
imageView=(ImageView)findViewById(R.id.image);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
FileOutputStream fos=new FileOutputStream(android.os.Environment.getExternalStorageDirectory()+"/b.jpg");
InputStream is=getResources().getAssets().open("b.jpg");
byte[] buffer=new byte[8192];
int count=0;
while ((count=is.read(buffer))>=0) {
fos.write(buffer,0,count);
}
fos.close();
is.close();
Toast.makeText(Sdcard_FileInOutput_Activty.this, "成功将文件写入到SD卡上", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
});
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String filename=android.os.Environment.getExternalStorageDirectory()+"/b.jpg";
if(!new File(filename).exists()){
Toast.makeText(Sdcard_FileInOutput_Activty.this, "还没有将文件写入到SD卡上", Toast.LENGTH_SHORT).show();
return;
}
try {
FileInputStream fis=new FileInputStream(filename);
Bitmap bitmap=BitmapFactory.decodeStream(fis);
imageView.setImageBitmap(bitmap);
fis.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
});
}
}