存储txt文件

时间:2014-09-23 18:14:52

标签: android storage assets

我正在开发一种杂志应用程序,其中包含很多txt文件,我从中读取文本(只读不写),而且我有点困惑,我已阅读过有关文件存储的文档但仍然没有找到存储我的txt文件的正确方法。这些文件应该在资产中吗?是否可以在资产中包含文件夹?如果是,我怎么能搞这些文件夹?

1 个答案:

答案 0 :(得分:0)

res / raw将是一个放置它们的好地方。如果在原始资源文件夹中放置了名为“article.txt”的文本文件,则首先将文件放入这样的InputStream中(注意“ctx”是Activity继承自的Context):

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);