Android 之 使用流读取资源文件中的数据
程序员文章站
2022-03-27 17:36:14
...
File:通过文件存储数据;
1、从resource中的raw文件夹中获取文件并读取数据(可以自动生成资源ID)
案例:读取res/raw/f.txt ---- 文件内容:欢迎测试从resource中的raw文件夹中获取文件并读取数据;
并通过提示显示给用户;
代码如下:
小贴士:
* 以上两种情况是在res资源目录下的资源文件,资源文件只能进行读,不能写;
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资源目录下的资源文件,资源文件只能进行读,不能写;
推荐阅读
-
在.NET中读取嵌入和使用资源文件的方法
-
android从资源文件中读取文件流并显示的方法
-
android从资源文件中读取文件流并显示的方法
-
使用php读取TXT文件的数据(单词、音标和翻译)到另一个TXT文件中,出现乱码,是什么原因?
-
【Python】(较简单)使用scipy.io.loadmat读取.mat文件中的数据部分
-
在.NET中读取嵌入和使用资源文件的方法
-
使用php读取TXT文件的数据(单词、音标和翻译)到另一个TXT文件中,出现乱码,是什么原因?
-
使用php读取TXT资料的数据(单词、音标和翻译)到另一个TXT文件中,出现乱码,是什么原因
-
Android 之 资源文件的介绍及使用
-
Android 之 使用File类在SD卡中读取数据文件