使用javaIO流往SD卡里存储数据:

用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();
        }
    }

你可能感兴趣的:(安卓,嵌入式)