我是android开发的新手,我正在尝试创建一个简单的应用程序,它从文本文件中读取一些数据并将其显示在ListView中。问题是我的读者找不到我的文件。我调试了我的应用程序,这是我提出的结论。那么,文本文件必须放在哪里才能让读者找到它? 下面是一些代码:
try
{
FileInputStream fstream = new FileInputStream("movies.txt");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null)
{
filme.add(strLine);
Log.d(LOG_TAG,"movie name:" + strLine);
}
in.close();
}
catch (Exception e)
{
System.err.println("Error: " + e.getMessage());
}
谢谢!
答案 0 :(得分:1)
将名为movies.txt的文件放在res / raw中,然后使用以下代码
String displayText = "";
try {
InputStream fileStream = getResources().openRawResource(
R.raw.movies);
int fileLen = fileStream.available();
// Read the entire resource into a local byte buffer.
byte[] fileBuffer = new byte[fileLen];
fileStream.read(fileBuffer);
fileStream.close();
displayText = new String(fileBuffer);
} catch (IOException e) {
// exception handling
}
答案 1 :(得分:0)
FileInputStream fstream = new FileInputStream("movies.txt");
movies.txt的路径在哪里?您必须在任何存储位置将路径作为SD卡或内部存储器提供。
好像,它是sd卡
FileInputStream fstream = new FileInputStream("/sdcard/movies.txt");
答案 2 :(得分:0)
通常,当您要打开文件时,请将其放入项目的res文件夹中。 如果要打开文本文件,可以将其放入res / raw目录。您的Android eclipse插件将为您生成包含文本文件句柄的Resource类。
要访问您的文件,您可以在活动中使用此文件:
InputStream ins = getResources().openRawResource(R.raw.movies);
其中“movies”是没有文件类型的文件名。
答案 3 :(得分:0)
如果您将文件存储在SD卡上,则可以使用Environment.getExternalStorageDirectory()
获取SD卡的根目录。
请注意,如果SD卡安装在计算机上,则可能无法访问SD卡。
您可以像这样检查外部存储的状态:
boolean externalStorageAvailable = false;
boolean externalStorageWriteable = false;
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
externalStorageAvailable = mExternalStorageWriteable = true;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
externalStorageAvailable = true;
externalStorageWriteable = false;
} else {
externalStorageAvailable = mExternalStorageWriteable = false;
}
if(externalStorageAvailable && externalStorageWriteable){
File sdRoot = Environment.getExternalStorageDirectory();
File myFile = new File(sdRoot, "path/to/my/file.txt");
}