本文实例讲述了Android数据持久化之读写SD卡中内容的方法。分享给大家供大家参考,具体如下:前面文章里讲的那三个方法:openFileOutput 、openFileInput 虽然都能通过流对象OutputStream和InputSt
本文实例讲述了Android数据持久化之读写SD卡中内容的方法。分享给大家供大家参考,具体如下:
前面文章里讲的那三个方法:openFileOutput
、openFileInput
虽然都能通过流对象OutputStream和InputStream可以处理任意文件中的数据,但与 SharedPreferences
一样,只能在手机内存的指定目录下建立文件,因此,在实际的开发使用中有很大的局限性,那么在这一节中,我们来看一个比较高级的方法来实现数据的持久化——读写SD卡上的内容。
——读取assets目录中的文件
android中的文件夹assets存放的是二进制的文件格式,比如音频、视频、图片等,但该目录下的文件不会被R.java文件索引到,如果想读取该目录下的文件还需要借助AssetManager对象。
代码如下:
public void writeToSD() { try { //创建用于将图片保存到SD卡上的FileOutputStream对象 FileOutputStream fos = new FileOutputStream(android.os.Environment.getExternalStorageDirectory() + "/image.jpg"); //打开assets目录下的image.jpg文件,并返回InputStream对象 InputStream is = getResources().getAssets().open("image.jpg"); //定义一个byte数组,用来保存每次向SD卡中文件写入的数据,最多8k byte[] buffer = new byte[8192]; int count = 0; //循环写入数据 while((count = is.read(buffer)) != -1) { fos.write(buffer, 0, count); } fos.close(); is.close(); Toast.makeText(this, "已成功将图片保存在SD卡中", Toast.LENGTH_SHORT).show(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }}public void readFromSD() throws IOException{ //指定SD卡中的图像文件名 String fileName = android.os.Environment.getExternalStorageState() + "image.jpg"; //判断文件图片是否存在 if (!new File(fileName).exists()) { Toast.makeText(this, "没有要找的图片文件,未装入", Toast.LENGTH_SHORT).show(); return; } image = (ImageView) findViewById(R.id.image); FileInputStream fis = new FileInputStream(fileName); //从文件的输入流装载Bimap对象 Bitmap bitmap = BitmapFactory.decodeStream(fis); image.setImageBitmap(bitmap); fis.close();}
--结束END--
本文标题: Android数据持久化之读写SD卡中内容的方法详解
本文链接: https://www.lsjlt.com/news/223507.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0