Android(安卓)读取工程中的txt文件
16lz
2021-01-25
---------------------------
1.众所周知,Android的res文件夹是用来存储资源的,可以在res文件夹下建立一个raw文件夹,放置在raw文件夹下的内容会被原样打包,而不会被编译成二进制文件,并且可以通过R文件进行很方便地访问。
比如我们可以将更新信息、版权信息等放到txt文件中,然后放到raw文件中,然后很方便地进行访问。
在raw中放入一个a.txt文件,然后就可以在Activity中使用getResources().openRawResource(R.raw.a);方法获取一个此文件的InputStream类,而后就可以很方便地进行读写a.txt了。
[java] view plain copy print ?
- InputStreaminputStream=getResources().openRawResource(R.raw.a);
一个获取InputStream中字符串内容的方法:
[java] view plain copy print ?
- publicstaticStringgetString(InputStreaminputStream){
- InputStreamReaderinputStreamReader=null;
- try{
- inputStreamReader=newInputStreamReader(inputStream,"gbk");
- }catch(UnsupportedEncodingExceptione1){
- e1.printStackTrace();
- }
- BufferedReaderreader=newBufferedReader(inputStreamReader);
- StringBuffersb=newStringBuffer("");
- Stringline;
- try{
- while((line=reader.readLine())!=null){
- sb.append(line);
- sb.append("\n");
- }
- }catch(IOExceptione){
- e.printStackTrace();
- }
- returnsb.toString();
- }
其中
[java] view plain copy print ?- inputStreamReader=newInputStreamReader(inputStream,"gbk");
为以gbk编码读取内容,不同的文本文件可能编码不同,如果出现乱码,可能需要调整编码
/-----------------------------------------------------------
2下面通过一个例子讲解读取资源文件显示在ScrollView当中:
1.ReadAsset.java文件:Java代码
- packagecom.example.ReadAsset;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.widget.TextView;
- importjava.io.IOException;
- importjava.io.InputStream;
- publicclassReadAssetextendsActivity{
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.read_asset);
- try{
- //ReturnanAssetManagerinstanceforyourapplication'spackage
- InputStreamis=getAssets().open("index.txt");
- intsize=is.available();
- //Readtheentireassetintoalocalbytebuffer.
- byte[]buffer=newbyte[size];
- is.read(buffer);
- is.close();
- //Convertthebufferintoastring.
- Stringtext=newString(buffer,"GB2312");
- //Finallystickthestringintothetextview.
- TextViewtv=(TextView)findViewById(R.id.text);
- tv.setText(text);
- }catch(IOExceptione){
- //Shouldneverhappen!
- thrownewRuntimeException(e);
- }
- }
- }
2. read_asset.xml文件
Java代码
- <?xmlversion="1.0"encoding="utf-8"?>
- <ScrollViewandroid:layout_width="fill_parent"
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_height="fill_parent"android:paddingTop="50dip">
- <TextViewandroid:id="@+id/text"android:layout_width="fill_parent"
- android:layout_height="wrap_content"android:textStyle="normal"/>
- </ScrollView>
3.然后在工程里面新建一个assets文件夹,随便放一个index.txt的文件在其中,运行
Ctrl+F11进行测试即可;
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- 在Android(安卓)Studio下执行高德搜索你“1008 ”?
- Android活动文件夹
- Android(安卓)UI【android 仿微信、QQ聊天,带表情,可翻页,带翻页拖
- android.content.res.Resources$NotFoundException: Resource is
- android studio中res文件夹下的文件显示到java下面