10、Context

一、Context

全局的环境对象,提供了很多方便的操作,帮助我们快速的获取数据,进行一些常规的操作。

1.1、获取路径

getFilesDir()等同于/data/data/包名/files/

File file = new File(getFilesDir(),"info.txt");

1.2、缓存文件路径

getCacheDir()等同于/data/data/包名/cache/

File file = new File(getCacheDir(),"info.txt");

1.3、上下文存储数据

1.通过Context下的openFileOutput()获取输出流

FileOutputStream fos = this.openFileOutput("info.txt", MODE_PRIVATE);

这两个方法第一个参数为文件名,第二个参数为模式(私有、可读、可写、可读可写),该方法保存文件的目录:/data/data/<package name>/files。

其中权限包含四种:

2.通过Context下的openFileInput()获取输入流

FileInputStream fis = this.openFileInput("info.txt");

1.4、资源目录

assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。

a) 先在Activity里面调用getAssets() 来获取AssetManager引用。

b) 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。

c) 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。

d) 调用AssetManager.close() 关闭AssetManager。

需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作:

以下为raw文件中读取:

public String getFromRaw(){
    try {
        InputStreamReader inputReader = new InputStreamReader(getResources().openRawResource(R.raw.test1));
        BufferedReader bufReader = new BufferedReader(inputReader);
        String line="";
        String Result="";
        while((line = bufReader.readLine()) != null)
            Result += line;
        return Result;
    } catch (Exception e) {
        e.printStackTrace();
    }
}

以下为assets文件中读取:

public String getFromAssets(String fileName){
    try {
        InputStreamReader inputReader = new InputStreamReader(getResources().getAssets().open(fileName) );
        BufferedReader bufReader = new BufferedReader(inputReader);
        String line="";
        String Result="";
        while((line = bufReader.readLine()) != null)
            Result += line;
        return Result;
    } catch (Exception e) {
        e.printStackTrace();
    }
}

待续

时间: 2024-08-02 20:55:17

10、Context的相关文章

Windows Phone本地数据库(SQLCE):10、创建数据库(翻译) (转)

这是“windows phone mango本地数据库(sqlce)”系列短片文章的第十篇. 为了让你开始在Windows Phone Mango中使用数据库,这一系列短片文章将覆盖所有你需要知道的知识点.我将谈谈创建一个windows phone mango本地数据库. 1.创建数据库 在你创建了DataContext对象后,你可以创建本地数据库并且执行一些额外的数据库操作. 注释:数据库被创造后,它是自动分配的一个版本.为了确定数据库版本,使用DatabaseSchemaUpdater 类.

Tomcat架构解析(三)-----Engine、host、context解析以及web应用加载

上一篇博文介绍了Server的创建,在Server创建完之后,就进入到Engine的创建过程,如下: 一.Engine的创建   1.创建Engine实例 当前次栈顶元素为Service对象,通过Service对象的setContainer()方法,将Engine对象添加到Service中. 2.为Engine添加集群配置 3.为Engine添加生命周期监听器 4.为Engine添加安全配置 二.Host的创建   1.创建Host的实例 addCallMethod(String rule,St

【转】ASCII码对应表chr(9)、chr(10)、chr(13)、chr(32)、chr(34)、chr(39)

chr(9) tab空格       chr(10) 换行      chr(13) 回车        Chr(13)&chr(10) 回车换行       chr(32) 空格符       chr(34) 双引号       chr(39) 单引号 chr(33) !        chr(34) "        chr(35) #        chr(36) $        chr(37) %        chr(38) &        chr(39) '   

10、使用TCP协议完成一个客户端一个服务器。客户端从键盘输入读取一个字符串,发送到服务器。 服务器接收客户端发送的字符串,反转之后发回客户端。客户端接收并打印。

/**10.使用TCP协议完成一个客户端一个服务器.客户端从键盘输入读取一个字符串,发送到服务器. 服务器接收客户端发送的字符串,反转之后发回客户端.客户端接收并打印. * 客户端*/ import java.io.*; import java.net.*; public class Test10_Client { public static void main(String[] args) throws Exception { Socket s = new Socket("192.168.0.

10、表单元素之input标签属性(中)

一.type属性总汇 input元素可以用来生成一个供用户输入数据的简单文本框.在默认的情况下,什么样的数据都可以输入.而通过不同的属性值,可以限制输入的内容.            属性名称                                       说明 text 一个单行文本框,默认行为 password 隐藏字符的密码框 search 搜索框,在某些浏览器键入内容会出现叉标记取消 submit.reset.button 生成一个提交按钮.重置按钮.普通按钮 number.

【Android 初学】10、Intent对象的使用

Start Android 1.Intent对象的基本概念 1)Intent是Android应用程序组件之一: 2)Intent对象在Android系统当中表示一种意图: 3)Intent当中最重要的内容是action与data: 2.Intent对象的基本使用方法 3.使用Intent在Activity之间传递数据的方法 1)在Activity之间可以通过Intent对象传递数据: 2)使用putExtra()系列方法向Intent对象当中存储数据 3)使用getXXXExtra()系列方法从

10、Cocos2dx 3.0游戏开发找小三之容器篇:Vector、Map、Value

重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27705613 容器 3.0版本之前Cocos2d-x 引擎为我们提供了 CCArray. CCDictionary 等 Objective-C 风格的容器: 使用 Cocos2d-x 容器的一个重要原因在于 Cocos2d-x 的内存管理. 一般来说,被存入容器的对象在移除之前都应该保证是有效的, 但值得注意的是,在v3.0 beta版本中加入了数据结

十三、MDT 2013 Update 1批量部署-EFI安装WIN 7、WIN 10、Server 2012 R2实战

随着大容量磁盘的普及,传统的BIOS支持MBR分区,可以支持2T以下的分区启动,如果启动盘的容量大于2T,必须采用GPT分区,GPT分区还克服了很多MBR分区的缺陷,采用GPT分区,系统需要EFI方式启动,当然小于2T的启动盘也可以采用EFI方式启动,目前VMWARE WORKSTATION 12 PRO也可以支持EFI启动,可以测试EFI启动下虚拟机MDT 2013 UPDATE 1部署. EFI只支持64位系统的安装,目前MDT 2013 UPDATE 1生成的64位启动镜像无法直接利用在V

前端图片预览,上传前预览,兼容IE7、8、9、10、11,Firefox,Chrome

在现在的Web开发中不可避免的会做一个图片预览的功能, 比如在上传图片的情况下,一个很简单的办法就是讲图片上传至服务器之后,再将文件的URL返回回来,然后异步通过这个URL加载刚刚上传的图片,实现图片的预览, 很明显的在这个过程中两次Web请求,一次发送文件,一次下载文件,到最后这个文件如果在客户端被删除(取消上传,弃用这次的上传), 这整个过程都白费了.我们希望能够在图片上传之前就能进行图片的预览,这样就避免了不必要的网络请求和时间等待. 在IE中有如下方式 var url; var file