我正在尝试读取我的示例Android应用程序中的一个简单文本文件。我使用下面编写的代码来读取这个简单的文本文件。
InputStream inputStream = openFileInput("test.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
我的问题是:我应该将这个"test.txt"
文件放在项目中的什么位置?我试着把文件放在"res/raw"
和"asset"
文件夹下,但是当上面写的代码的第一次live被执行时,我得到了exception "FileNotFound"
。
发布于 2011-04-24 23:19:59
将您的文本文件放在Android项目下的/assets
目录中。使用AssetManager
类访问它。
AssetManager am = context.getAssets();
InputStream is = am.open("test.txt");
或者,您也可以将该文件放在/res/raw
目录中,该目录中将对该文件进行索引,并且可以通过R文件中的id进行访问:
InputStream is = context.getResources().openRawResource(R.raw.test);
发布于 2011-04-25 12:04:14
尝尝这个,
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();
}
}
发布于 2016-01-17 17:44:55
我是这样做的:
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();
}
使用方法如下:
readFromAssets(context,"test.txt")
https://stackoverflow.com/questions/5771366
复制相似问题