一、基础概要

  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. Socket通信客户端设计(Java)

    public class Client extends JFrame implements Runnable{ private JPanel jPanel= new JPanel(); private ...

  2. checkbox全选和子选

    用jq: $(function() { var $subBox = $("input[name='subBox']"); $("#checkAll").clic ...

  3. session应用----登录验证小案例

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  4. 【jackson 异常】com.fasterxml.jackson.databind.JsonMappingException异常处理

    项目中,父层是Gene.java[基因实体]  子层是Corlib.java[文集库实体],一种基因对用多个文集库文章 但是在查询文集库这个实体的时候报错:[com.fasterxml.jackson ...

  5. Android开发中Handler的经典总结

    当应用程序启动时,Android首先会开启一个主线程(也就是UI线程),主线程为管理界面中的UI控件,进行事件分发. AD: 一.Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线 ...

  6. Loadrunner参数化连接oracle、mysql数据源报错及解决办法

    Loadrunner参数化连接oracle.mysql数据源报错及解决办法 (本人系统是Win7 64,  两位小伙伴因为是默认安装lr,安装在 最终参数化的时候,出现连接字符串无法自动加载出来: 最 ...

  7. AngularJS 学习之事件

    1.ng-click指令:定义了AngularJS点击事件 <div ng-app="" ng-controller="myCtrl"> <b ...

  8. matlab坐标外围背景变白色

    set(gcf,'Color',[1,1,1]) 默认图片是这样的: 出图之前使用命令,外围变白后效果如下:

  9. Scau 10327 Biggest Square

    时间限制:1000MS  内存限制:65535K提交次数:0 通过次数:0 题型: 编程题   语言: G++;GCC Description You are given a M*M cloth wi ...

  10. three.js 场景入门

    <!DOCTYPE html> <html> <head> <title>Example 01.02 - First Scene</title&g ...