2019独角兽企业重金招聘Python工程师标准>>>

对于应用携带的静态数据,可以放置在应用的assets目录或者res,raw目录下。
对于assets目录下的静态数据,存在当文件最大支持1MB的局限,读取方式如下

1 InputStream is = getAssets().open("xxx.xx");

对于res,raw目录下的文件,可以通过如下方式读取:

1 InputStream is = resources.openRawResource.(R.raw.xxx);

另外,Android还对创建缓存提供了支持,通过getCacheDir()可以获取应用的缓存路径,在系统可用空间不足时,Android会清空缓存,但对于开发者而言,不应维护过多的缓存。用户可以通过系统的设置来手动清空缓存,有人也用这个缓存来做图片的缓存,但是吧,虽然少了用了流量,但是对程序的效率来说就只是缩短了一个网络下载时间而已。开发者可以根据自己应用的特性来选择是否使用这个缓存空间。

Android支持在SD卡上的应用私有目录,在Froyo版本后,通过getExternalFilesDir()可以获得具体路径。该路径依赖与应用的包名,如果你包为hello.file那么SD开上的应用私有目录为\mnt\sdcard\Android\data\hello.file\files\.如果希望存储在SD卡上的公共目录下,可以通过getExternalStoragePublicDirectory()公共目录的具体路径视需要存储的文件类型而定。

SD上的应用需要的缓存较大,也可以在SD卡上建立缓存目录,在Froyo版本后,通过getExternalCacheDir()可以获取应用在SD卡上的缓存路径。在使用SD卡目录时,需注意SD卡是否挂载,可通过Environment.getExternalStorageState()方法进行判断,如果返回值为Envirnment.MEDIA_MOUNTED表示SD卡处于挂载状态,可以放心使用。

SQLite的中的事务处理。当需要一次性修改多个数据时,建议通过SQLite的事务处理进行批量处理,这有利于提高执行的效率。事务处理相关的方法如下:

1 public void beginTransaction();
2 public void beginTransactionWithListener(SQLiteTransactionListener transactionListener);
3 public void endTransaction();
4 public void inTransaction();
5 public void setTransactionSuccessful();

 此外还有使用SharedPreferences来存储的xml文件,究其本质其实还是<key,value>值对。Android中XML文件更多的用来维护应用或者系统的配置文件,我们在开发中一般用SharedPreferences也是保存一些应用的配置信息,记录用户的某些操作,例如:用户是不是第一次进入应用,用户是否选择了保存用户名和密码和用户的某些偏好设置等等,Android根据配置信息是否对其他应用开放,SharedPreferences提供了两种权限,MODE_PRIVATE和MODE_WORLD_READABLE该数据存放在\data\data\包.名\shared_prefs文件夹下,文件扩展名为.xml。数据以这种形式存储:

<map><boolean name="firstFlag" value="true" /></map>
获取SharedPreferences的方法:(该变量一般作为全局变量,放到Activity的OnCreate方法中初始化,我遇到有人在方法中获取不到这个变量的错误,该成全局的就获取到了。)

1 SharedPreferences sp = getSharedPreferences("存储xml文件的名字",MODE_PRIVATE);

获得数据的方法:

1 String msg = sp.getString("存储的key","如果没保存则会获得的数据");

msg就是你保存的数据,如果没有保存,那么获得就是你后面设置的默认数据 
对其编辑的方法:

1 Editor editor = sp.edit();
2 editor.putString(key, value);
3 editor.commit();//一定不要忘记提交,否则就保存不到文件中。

如果希望配置信息对其他应用开放, 在设置权限时,可使用  MODE_WORLD_READABLE, 其他应用要获得该配置信息时,必须先获取相应的上下文:

1 context =createPackageContext("全包名",Context_CONTEXT_IGNORE_SECURITY);
2 SharedPreferences sp = context.getSharedPreferences("存储xml文件的名字",MODE_PRIVATE);

在实际开发中,一定要对获得context进行是否为null的判断,有些时候我们打不开,或因权限不足,或因为应用已经被用户删除。  
需要说明的是,在PreferenceActivity中内置了对SharedPreferences的支持。如果希望进一步了解的用户可以查看一下类似ListPreference的用法。 
其次Android还提供了内部存储方式, 开发者可以将数据存储在应用的私有空间中,避免其他程序访问。其权限在Context下,有: MODE_PRIVATE,MODE_APPEND,MODE_WORLD_READABLE,MODE_WORLD_WRITEABLE 等。内部  存储所在的目录为:/date/date/包.名/files  
写入数据可读数据 也很简单:

1 FileOutputStream fos = context.openFileOutput(file,Context_MODE_WORLD_WRITEABLE);
2 fos.write(bytes);
3 fos.close();
4  
5 FileInputStream fis = context.openFileInput("fileName");

接下来跟平常文件一样读入 就ok了。

转载于:https://my.oschina.net/u/735047/blog/157401

Android 文件存放路径相关推荐

  1. NC6自助开发文件存放路径及一些总结以及修改自助登录界面的样式、图片、添加文字提示等文件

    NC6自助开发文件存放路径:\nchome\hotwebs\portal\sync NC6自助开发总结:https://download.csdn.net/download/u010741112/24 ...

  2. docker 文件存放路径, 修改端口映射

    文章目录 如何获取容器的启动命令 1, 容器层:文件存放路径 后天修改容器端口 a, 先提交旧容器为新的镜像,再启动新容器 b, 修改容器配置文件置文件:hostconfig.json 2, 镜像层: ...

  3. Android文件夹路径/data/data/包名/

    文件之获取文件夹路径/data/data/ 应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的. 大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存 ...

  4. java sdcard path_更改 android 文件存放目录 getWritablePath() 为sdCard

    CCFileUtils::sharedFileUtils()->getWritablePath() 默认为 /data/data/prjName/ "Java_org_cocos2dx ...

  5. php sql server配置文件路径,云服务器初始化 第六章:更改MySQL数据文件存放路径...

    一.停止服务 systemctl stop mysqld.service 二.创建数据目录 mkdir -p /web/data 三.将默认存放文件移动至数据目录 mv /var/lib/mysql ...

  6. MSSQLSERVER 2019修改数据库文件存放路径的简单实现

    一.环境:数据库版本:15.0.2000.5   OS:Windows Server 2016 Standard (10.0) 二.登陆MASTER数据库,查询准备迁移的数据库的信息 select d ...

  7. Windows通过注册表找出桌面壁纸文件存放路径

    首先Win+R调出运行,输入 regedit 在红色的输入框输入下面的内容并回车 计算机\HKEY_CURRENT_USER\Control Panel\Desktop 然后下拉结果 找到WallPa ...

  8. 如何快速查看mysql数据文件存放路径?

    进入mysql终端 mysql>show variables like '%datadir%'; 出来的结果即是! 转载于:https://www.cnblogs.com/idotest/p/5 ...

  9. docker 安装 mysql 并映射数据库存放路径及配置文件

    [Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...

  10. php上传文件默认路径,PHP文件上传到指定目录的实现过程实例解析

    摘要:文件上传其实很简单,通过form表单就可以实现.但form表单上传文件只是把文件放到服务器的临时目录,它还需要我们把上传到临时目录的文件转放到服务器的指定目录.简单的说:把文件从临时目录移动到指 ...

最新文章

  1. 立即终止Sleep的线程
  2. POJ 2251 Dungeon Master
  3. stylus之运算符(Operators)
  4. Spring + Dubbo + zookeeper (linux) 框架搭建
  5. 用CLIP增强视频语言的理解,在VALUE榜单上SOTA!
  6. 在delphi原有控件基础上画图
  7. idea往gitee上传项目
  8. ASP.NET中调用Excel的问题
  9. 【SQL】ROWNUM和ROWID
  10. ppt转图片(支持动画帧的转换)
  11. 【echarts报错】: ‘normal‘ hierarchy in itemStyle has been removed since 4.0.
  12. 摇筛子动画 android,摇骰子动画
  13. Java百度网盘上传图片(文件)
  14. [雅礼集训]xiz(字符串匹配)
  15. 小李飞刀系列之Oracle EBS期间平均成本(PAC)--生产成本计算(一)基础
  16. 华为机试—手机号码验证
  17. 水星UD6S网卡Linux驱动,水星UD6S驱动|水星UD6S无线网卡驱动下载 v1.0 官方版 - 比克尔下载...
  18. Anchor-free目标检测综述 -- Dense Prediction篇
  19. 计算机绘图软件origin,计算机绘图软件origin.pdf
  20. pdf转换器绿色版使用方法

热门文章

  1. 清除VS2005中的最近项目
  2. lenna的真实面目
  3. [Swift]LeetCode248.对称数 III $ Strobogrammatic Number III
  4. 谈一谈商品编码的问题
  5. C#中缓存的简单方法及使用Sql设置缓存依赖项
  6. tomcat是一个应用服务器
  7. C/C++心得-从内存开始
  8. javascript变量说明
  9. 服务器后端开发系列——《实战Nginx高性能Web服务器》 (转载)
  10. CLR via C# 边读边想 01 - .NET 程序是如何运行起来的?