用javaIO流写数据到SD卡上
流程:
一.判断sd卡是否存在
二.获得sd卡的路径
三.调用javaIO流
四.用javaIO流把数据写到sd卡上
五.关闭javaIO流
六.在Androidmanifest.xml下添加读写sd卡权限(在application标签外)
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
read = (Button) findViewById(R.id.btnRead);
write = (Button) findViewById(R.id.btnWrite);
//判断sd卡是否存在
Boolean is = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
//如果不存在,则按键不能被按下
if(!is){
//提示
Toast.makeText(this,"SD Card Can't Find",Toast.LENGTH_SHORT).show();
read.setEnabled(false);
write.setEnabled(false);
}
}
//按钮的按键事件
public void btnWriteOnClick(View v) throws IOException {
//获得sd卡的路径
File file = android.os.Environment.getExternalStorageDirectory();
//调用javaIO流,获得写入的文件(这里使用的是assets目录存放图片文件)
InputStream in = new BufferedInputStream(getResources().getAssets().open("lianxiren.jpg"));
OutputStream out = new BufferedOutputStream(new FileOutputStream(file+"/tu.jpg"));
//用javaIO流写数据到SD卡上
int buf;
while ((buf=in.read())!=-1){
out.write(buf);
}
//关闭javaIO流
in.close();
out.flush();
out.close();
//提示!
Toast.makeText(getApplicationContext(),"Save Data Success!!",Toast.LENGTH_SHORT).show();
}
用javaIO流方式读取存储在SD卡上的数据
流程:
一.判断sd卡是否存在
二.获得保存在sd卡上的文件路径
三.判断文件是否存在
四.调用javaIo流
五.读取jabaIo流里的数据
六.处理读到的数据
七.关闭javaIO流
八.在Androidmanifest.xml下添加读写sd卡权限
代码:
//第一步是在OnCreate方法里面实现,所以这里不需要
public void btnReadOnClick(View v) throws IOException {
//获得保存在sd卡上的文件路径
File file = new File(android.os.Environment.getExternalStorageDirectory()+"/tu.jpg");
//提示文件没找到
if(!file.exists()){
Toast.makeText(getApplicationContext(),"File Can't Find",Toast.LENGTH_SHORT).show();
}
//如果找到文件
else {
//调用javaIO流
DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(file)));
//读取jabaIo流里的数据(因为文件是个图片,所以使用Bitmap 如果是文字的话,推荐使用字符流)
Bitmap bitmap = BitmapFactory.decodeStream(in);
//处理读取到的数据,这里是显示在ImageView控件上
imageView = (ImageView) findViewById(R.id.imageView);
imageView.setImageBitmap(bitmap);
//关闭javaIO流
in.close();
}
}