Android 之 使用流读取资源文件中的数据
File:通过文件存储数据;
1、从resource中的raw文件夹中获取文件并读取数据(可以自动生成资源ID)
案例:读取res/raw/f.txt----文件内容:欢迎测试从resource中的raw文件夹中获取文件并读取数据;
并通过提示显示给用户;
代码如下:
/* File */ /* 测试:从raw对资源文件进行数据的读取,并显示 */ OnClickListener listerner_raw = new OnClickListener() { public void onClick(View v) { String temp = null; try{ /* 获取流的对象 InputStream *//* 理解:通道建立 */ InputStream in = getResources().openRawResource(R.raw.f); /* 获取文件的大小(字节数) */ int length = in.available(); /* 创建一个byte数组, 用于装载字节信息 */ byte[] buffer = new byte[length]; /* 开始读取文件read(); *//* 解释:将读取到的字节放入到buffer这个数组中 */ in.read(buffer); /* 编码的转换三种类型:UTF-8 UNICODE BIG5 *//**/ temp = EncodingUtils.getString(buffer, "UTF-8"); //temp = EncodingUtils.getString(buffer, "UNICODE"); //temp = EncodingUtils.getString(buffer, "BIG5"); //temp = EncodingUtils.getString(buffer, "ANST"); /* 通过String 的构造方法,将字节数组构建成字符串 */ //String temp = new String(buffer); /* 流的关闭close(); */ in.close(); Toast.makeText(MainActivity.this, temp.toString(), 1000).show(); }catch(Exception ex){ ex.printStackTrace(); } } }; 2、从assets中获取文件并读取数据;(不能生成资源ID) 案例:在assets中有一个f.txt文件,读取文件中的数据 代码: /* 测试:从assets中对文件进行读取 */ OnClickListener listener_assets = new OnClickListener() { public void onClick(View v) { String temp =""; try{ /* 获取流的对象,建立通道 */ InputStream in = getResources().getAssets().open("f.txt"); /* 获取文件的大小(字节数) */ int length = in.available(); /* 创建一个byte数组, 用于装载字节信息 */ byte[] buffer = new byte[length]; /* 开始读取文件read(); *//* 解释:将读取到的字节放入到buffer这个数组中 */ in.read(buffer); /* 编码的转换三种类型:UTF-8 UNICODE BIG5 *//* 编码的选择根据f.txt文件的编码类型进行调整 */ //temp = EncodingUtils.getString(buffer, "UTF-8"); //temp = EncodingUtils.getString(buffer, "UNICODE"); //temp = EncodingUtils.getString(buffer, "BIG5"); /* 通过String 的构造方法,将字节数组构建成字符串 */ //temp = new String(buffer); /* 流的关闭close(); */ in.close(); }catch(Exception ex){ ex.printStackTrace(); } Toast.makeText(MainActivity.this, temp+"", 1000).show(); } };
小贴士:
*以上两种情况是在res资源目录下的资源文件,资源文件只能进行读,不能写;
相关推荐
yangkang 2020-11-09
lbyd0 2020-11-17
sushuanglei 2020-11-12
85477104 2020-11-17
KANSYOUKYOU 2020-11-16
wushengyong 2020-10-28
lizhengjava 2020-11-13
星月情缘 2020-11-13
huangxiaoyun00 2020-11-13
luyong0 2020-11-08
腾讯soso团队 2020-11-06
Apsaravod 2020-11-05
PeterChangyb 2020-11-05
gaobudong 2020-11-04
wwwjun 2020-11-02
gyunwh 2020-11-02
EchoYY 2020-10-31
dingyahui 2020-10-30