首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >读取一个简单的文本文件

读取一个简单的文本文件
EN

Stack Overflow用户
提问于 2011-04-24 23:18:49
回答 6查看 211.8K关注 0票数 116

我正在尝试读取我的示例Android应用程序中的一个简单文本文件。我使用下面编写的代码来读取这个简单的文本文件。

代码语言:javascript
复制
InputStream inputStream = openFileInput("test.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

我的问题是:我应该将这个"test.txt"文件放在项目中的什么位置?我试着把文件放在"res/raw""asset"文件夹下,但是当上面写的代码的第一次live被执行时,我得到了exception "FileNotFound"

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-04-24 23:19:59

将您的文本文件放在Android项目下的/assets目录中。使用AssetManager类访问它。

代码语言:javascript
复制
AssetManager am = context.getAssets();
InputStream is = am.open("test.txt");

或者,您也可以将该文件放在/res/raw目录中,该目录中将对该文件进行索引,并且可以通过R文件中的id进行访问:

代码语言:javascript
复制
InputStream is = context.getResources().openRawResource(R.raw.test);
票数 182
EN

Stack Overflow用户

发布于 2011-04-25 12:04:14

尝尝这个,

代码语言:javascript
复制
package example.txtRead;

import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import java.util.Vector;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class txtRead extends Activity {
    String labels="caption";
    String text="";
    String[] s;
    private Vector<String> wordss;
    int j=0;
    private StringTokenizer tokenizer;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        wordss = new Vector<String>();
        TextView helloTxt = (TextView)findViewById(R.id.hellotxt);
        helloTxt.setText(readTxt());
 }

    private String readTxt(){

     InputStream inputStream = getResources().openRawResource(R.raw.toc);
//     InputStream inputStream = getResources().openRawResource(R.raw.internals);
     System.out.println(inputStream);
     ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

     int i;
  try {
   i = inputStream.read();
   while (i != -1)
      {
       byteArrayOutputStream.write(i);
       i = inputStream.read();
      }
      inputStream.close();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

     return byteArrayOutputStream.toString();
    }
}
票数 25
EN

Stack Overflow用户

发布于 2016-01-17 17:44:55

我是这样做的:

代码语言:javascript
复制
public static String readFromAssets(Context context, String filename) throws IOException {
    BufferedReader reader = new BufferedReader(new InputStreamReader(context.getAssets().open(filename)));

    // do reading, usually loop until end of file reading  
    StringBuilder sb = new StringBuilder();
    String mLine = reader.readLine();
    while (mLine != null) {
        sb.append(mLine); // process line
        mLine = reader.readLine();
    }
    reader.close();
    return sb.toString();
}

使用方法如下:

代码语言:javascript
复制
readFromAssets(context,"test.txt")
票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5771366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档