我正在开发一种杂志应用程序,其中包含很多txt文件,我从中读取文本(只读不写),而且我有点困惑,我已阅读过有关文件存储的文档但仍然没有找到存储我的txt文件的正确方法。这些文件应该在资产中吗?是否可以在资产中包含文件夹?如果是,我怎么能搞这些文件夹?
答案 0 :(得分:0)
InputStream inputStream = ctx.getResources().openRawResource(R.raw.article);
然后将InputStream转换为String。这可以通过1000种不同的方式完成。这是一种方式:
InputStreamReader inputreader = new InputStreamReader(inputStream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
StringBuilder text = new StringBuilder();
try {
while (( line = buffreader.readLine()) != null) {
text.append(line);
text.append('\n');
}
} catch (IOException e) {
return null;
}
String fileContentsStr = text.toString();
这是一个完全正常工作的方法(使用上面的转换技术)将文本文件从raw文件夹转换为字符串。我从这篇文章Android read text raw resource file得到的。
public static String readRawTextFile(Context ctx, int resId)
{
InputStream inputStream = ctx.getResources().openRawResource(resId);
InputStreamReader inputreader = new InputStreamReader(inputStream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
StringBuilder text = new StringBuilder();
try {
while (( line = buffreader.readLine()) != null) {
text.append(line);
text.append('\n');
}
} catch (IOException e) {
return null;
}
return text.toString();
}
仍然使用“article.txt”,您可以从如下的Activity中调用此方法:
readRawTextFile(this, R.raw.article);