欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android编程实现读取工程中的txt文件功能

程序员文章站 2023-12-16 23:44:28
本文实例讲述了android编程实现读取工程中的txt文件功能。分享给大家供大家参考,具体如下: 1. 众所周知,android的res文件夹是用来存储资源的,可以在re...

本文实例讲述了android编程实现读取工程中的txt文件功能。分享给大家供大家参考,具体如下:

1. 众所周知,android的res文件夹是用来存储资源的,可以在res文件夹下建立一个raw文件夹,放置在raw文件夹下的内容会被原样打包,而不会被编译成二进制文件,并且可以通过r文件进行很方便地访问。
比如我们可以将更新信息、版权信息等放到txt文件中,然后放到raw文件中,然后很方便地进行访问。

在raw中放入一个a.txt文件,然后就可以在activity中使用getresources().openrawresource(r.raw.a);方法获取一个此文件的inputstream类,而后就可以很方便地进行读写a.txt了。

inputstream inputstream = getresources().openrawresource(r.raw.a);

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

public static string getstring(inputstream inputstream) {
  inputstreamreader inputstreamreader = null;
  try {
    inputstreamreader = new inputstreamreader(inputstream, "gbk");
  } catch (unsupportedencodingexception e1) {
    e1.printstacktrace();
  }
  bufferedreader reader = new bufferedreader(inputstreamreader);
  stringbuffer sb = new stringbuffer("");
  string line;
  try {
    while ((line = reader.readline()) != null) {
      sb.append(line);
      sb.append("\n");
    }
  } catch (ioexception e) {
    e.printstacktrace();
  }
  return sb.tostring();
}

传入一个inputstream,返回其中的文本内容。

其中:

inputstreamreader = new inputstreamreader(inputstream, "gbk");

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

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

①.readasset.java文件:

package com.example.readasset;
import android.app.activity;
import android.os.bundle;
import android.widget.textview;
import java.io.ioexception;
import java.io.inputstream;
public class readasset extends activity {
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.read_asset);
    try {
//return an assetmanager instance for your application's package
      inputstream is = getassets().open("index.txt");
      int size = is.available();
      // read the entire asset into a local byte buffer.
      byte[] buffer = new byte[size];
      is.read(buffer);
      is.close();
      // convert the buffer into a string.
      string text = new string(buffer, "gb2312");
      // finally stick the string into the text view.
      textview tv = (textview) findviewbyid(r.id.text);
      tv.settext(text);
    } catch (ioexception e) {
      // should never happen!
      throw new runtimeexception(e);
    }
  }
}

②. read_asset.xml文件

<?xml version="1.0" encoding="utf-8"?>
<scrollview android:layout_width="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_height="fill_parent" android:paddingtop="50dip">
  <textview android:id="@+id/text" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:textstyle="normal" />
</scrollview>

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

更多关于android相关内容感兴趣的读者可查看本站专题:《android文件操作技巧汇总》、《android视图view技巧总结》、《android开发动画技巧汇总》、《android编程之activity操作技巧总结》、《android布局layout技巧总结》、《android开发入门与进阶教程》、《android资源操作技巧汇总》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。

上一篇:

下一篇: