Android开发--FileInputStream/OutStream/Sdcard写入

本文介绍如何在Android应用中实现对SD卡的文件读写操作,包括获取权限、写入图片文件到SD卡及从SD卡读取图片并在应用内显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,需要向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();
			}
			}
		});
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值