---------------------------

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 ?
  1. InputStreaminputStream=getResources().openRawResource(R.raw.a);

一个获取InputStream中字符串内容的方法:

[java] view plain copy print ?
  1. publicstaticStringgetString(InputStreaminputStream){
  2. InputStreamReaderinputStreamReader=null;
  3. try{
  4. inputStreamReader=newInputStreamReader(inputStream,"gbk");
  5. }catch(UnsupportedEncodingExceptione1){
  6. e1.printStackTrace();
  7. }
  8. BufferedReaderreader=newBufferedReader(inputStreamReader);
  9. StringBuffersb=newStringBuffer("");
  10. Stringline;
  11. try{
  12. while((line=reader.readLine())!=null){
  13. sb.append(line);
  14. sb.append("\n");
  15. }
  16. }catch(IOExceptione){
  17. e.printStackTrace();
  18. }
  19. returnsb.toString();
  20. }
传入一个InputStream,返回其中的文本内容。

其中

[java] view plain copy print ?
  1. inputStreamReader=newInputStreamReader(inputStream,"gbk");

为以gbk编码读取内容,不同的文本文件可能编码不同,如果出现乱码,可能需要调整编码

/-----------------------------------------------------------

2下面通过一个例子讲解读取资源文件显示在ScrollView当中:

1.ReadAsset.java文件:
Java代码
  1. packagecom.example.ReadAsset;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.widget.TextView;
  5. importjava.io.IOException;
  6. importjava.io.InputStream;
  7. publicclassReadAssetextendsActivity{
  8. @Override
  9. protectedvoidonCreate(BundlesavedInstanceState){
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.read_asset);
  12. try{
  13. //ReturnanAssetManagerinstanceforyourapplication'spackage
  14. InputStreamis=getAssets().open("index.txt");
  15. intsize=is.available();
  16. //Readtheentireassetintoalocalbytebuffer.
  17. byte[]buffer=newbyte[size];
  18. is.read(buffer);
  19. is.close();
  20. //Convertthebufferintoastring.
  21. Stringtext=newString(buffer,"GB2312");
  22. //Finallystickthestringintothetextview.
  23. TextViewtv=(TextView)findViewById(R.id.text);
  24. tv.setText(text);
  25. }catch(IOExceptione){
  26. //Shouldneverhappen!
  27. thrownewRuntimeException(e);
  28. }
  29. }
  30. }

2. read_asset.xml文件
Java代码
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <ScrollViewandroid:layout_width="fill_parent"
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_height="fill_parent"android:paddingTop="50dip">
  5. <TextViewandroid:id="@+id/text"android:layout_width="fill_parent"
  6. android:layout_height="wrap_content"android:textStyle="normal"/>
  7. </ScrollView>


3.然后在工程里面新建一个assets文件夹,随便放一个index.txt的文件在其中,运行
Ctrl+F11进行测试即可;

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. 在Android(安卓)Studio下执行高德搜索你“1008 ”?
  6. Android活动文件夹
  7. Android(安卓)UI【android 仿微信、QQ聊天,带表情,可翻页,带翻页拖
  8. android.content.res.Resources$NotFoundException: Resource is
  9. android studio中res文件夹下的文件显示到java下面

随机推荐

  1. Android Studio第二十四期 - Gson封装Uti
  2. Android工程 单元测试
  3. Android(安卓)Studio 快捷键(转)
  4. Android(安卓)- 时间 日期相关组件
  5. Android JNI 分析
  6. android之datepicker控件用法
  7. Android Lights笔记
  8. android:layout_width="match_parent"
  9. android java和js交互
  10. Android视频桌面,动态桌面开发