一、基础概要

  1、说明:

    1>应用程序运行需要一些较大的数据或者图片可保存在手机内部

    2>文件类型:任意

    3>路径:/data/data/packageName/files/

    4>卸载应用时会删除此数据文件

    5>也可以设置操作数据文件的权限(同SharedPreferences)

二、练习

  1>FileInputStream fis=openFileInput("logo.png");     读取文件

  2>FileOutputStream fos=openFileOutput("logo.png",MODE_PRIVATE);   保存文件

  3>File filesDir=getFilesDir();    得到files文件夹对象

  4>操作asserts下的文件:

      .context.getAssets()    得到AssetManager

      .InputStream open(filename);  读取文件

  5>加载图片文件:

    Bitmap bitmap=BitmapFactory.decodeFile(String pathName);  (Drawable:表示可绘制图片对象)

  

保存图文件:

  1>得到InputStream  :读取assets下的logo.png

      AssetManager manager=getAssets();

  2>读取文件

      InputStream is=manager.open("logo.png");

  3>得到OutputStream  : /data/data/packageName/files/logo.png

      FileOutputStream fos=openFileOutput("logo.png",Context.MODE_PRIVATE);

  4>边读边写:

    byte[] buffer=new byte[1024];

    int len=-1;

    while((len=is.read(buffer))!=-1){

      fos.write(buffer,0,len);

    }

    fos.close();

    is.close();

读取图片:

  1>得到图片路径:  /data/data/packageName/files

    String filesPath=getFileDir().getAbsolutePath();

    String imgPath=filesPath+"/logo.png";

  2>加载图片文件得到bitmap对象:

    Bitmap bitmap=BitmapFactory.decodeFile(imgPath);

  3>将其设置到imageView中显示:

    iv_if.setImageBitmap(bitmap);

三、源代码

保存图片:

AssetManager manager=getAssets();
     InputStream is=manager.open("logo.png");
     FileOutputStream fos= openFileOutput("logo.png",Context.MODE_PRIVATE);
     byte[] buffer=new byte[1024];
     int len=-1;
     while((len=is.read(buffer))!=-1){
      fos.write(buffer, 0, len);
     }
     fos.close();
     is.close();
     Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_SHORT).show();

读取图片:

android-数据存储之手机内部file存储的更多相关文章

  1. Android——数据存储(课堂代码整理:SharedPreferences存储和手机内部文件存储)

    layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...

  2. Android——数据存储:手机内部存储

    存取字符串和存取图片不相同 xml <EditText android:layout_width="match_parent" android:layout_height=& ...

  3. andorid 数据储存、SharedPreferences存储和手机内部储存

    .xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...

  4. Android——手机内部文件存储(作业)

    作业:把用户的注册信息存储到文件里,登录成功后读出并显示出来 activity_practice2的layout文件: <?xml version="1.0" encodin ...

  5. Android开发学习——android数据存储

    Android的存储 Android中的数据存储方式及其存储位置 SharedPrefrence存储 1). 位置           /data/data/packageName/shared_pr ...

  6. (转)获取android手机内部存储空间和外部存储空间的参数 && 如何决定一个apk的安装位置

    转:http://blog.csdn.net/zhandoushi1982/article/details/8560233 获取android文件系统的信息,需要Environment类和StatFs ...

  7. Android数据存储之内部存储、外部存储

    首先来介绍下什么是内部存储? 在Android平台下,有着自己独立的数据存储规则,在windows平台下,应用程序能够自由的或者在特定的訪问权限基础上訪问或改动其它应用程序下的文件资源. 可是在And ...

  8. Android数据存储三剑客——SharedPreferences、File、SQLite

    Android中常用的数据存储一般有三种方式:SharedPreferences.文件和SQLite数据库,用来保存需要长时间保存的数据.本文将通过几个具体的小实例来讲解这三种方式的具体实现. 数据存 ...

  9. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览

    Android数据的四种存储方式SharedPreferences.SQLite.Content Provider和File (一) —— 总览   作为一个完成的应用程序,数据存储操作是必不可少的. ...

随机推荐

  1. 10 个学习iOS开发的最佳网站(转)

    10 个学习iOS开发的最佳网站 作者 jopen 2012-09-26 08:59:56 1) Apple Learning Objective C Objective-C,通常写作ObjC和较少用 ...

  2. HDU 3727 Jewel 可持久化线段树

    Jewel Problem Description   Jimmy wants to make a special necklace for his girlfriend. He bought man ...

  3. Windows MDL原理总结

    http://blog.csdn.net/tbwood/article/details/5400419 http://www.cnblogs.com/jack204/archive/2011/12/2 ...

  4. supervisor(一)基础篇

    这两天干的活,是让楼主写一个supervisor的listener,用来监控supervisor所管理子进程的状态,当子进程异常退出时,楼主写的这个listener将会触发报警.在这里总结下super ...

  5. Sublime text追踪函数插件:ctags 和php代码格式化

    转自:http://blog.csdn.net/zm2714/article/details/8076077 这两天一直纠结两款编辑器——eclipse和sublime Text. eclipse的p ...

  6. 为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?

    在一个 Android 应用中,我使用 FragmentPagerAdapter 来 处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我 ...

  7. strcmp函数使用总结

    Action() { /********************************* * Author:旺仔 * object:strcmp * date:2015-12-09 * fuc:我输 ...

  8. JAVA Day5

                                         数组   1.数组是一组变量的集合,存储“相同数据类型”的一组数据: 连续的空间. 2.声明一个变量就是在内存空间划出一块合适 ...

  9. 通过PHP扩展phpredis操作redis

    我们使用phpredis,这个扩展能让你用PHP操作redis. 源码下载: phpize ./configure ); var_dump($result); echo $redis->get( ...

  10. (转)set集合的用法

    原地址:http://blog.csdn.net/chaiwenjun000/article/details/50561775 SET 集合 百度百科中说集合中的元素有三个特征: 1.确定性(集合中的 ...