Android 存储txt文件
我正在开发一种杂志应用程序,其中包含许多txt文件,我从中读取文本(只读不写),我有点困惑,我已经阅读了有关文件存储的文档,但似乎仍然没有找到正确的方法来存储我的txt文件。这些文件应该在资产中吗?是否可以在资产中设置文件夹?如果是,我如何访问这些文件夹 res/raw将是放置它们的好地方。如果将名为“article.txt”的文本文件放置在原始资源文件夹中,则首先将该文件放入如下输入流中(请注意,“ctx”是活动继承的上下文): 然后将InputStream转换为字符串。这可以通过大约1000种不同的方式实现。这里有一个方法:Android 存储txt文件,android,storage,assets,Android,Storage,Assets,我正在开发一种杂志应用程序,其中包含许多txt文件,我从中读取文本(只读不写),我有点困惑,我已经阅读了有关文件存储的文档,但似乎仍然没有找到正确的方法来存储我的txt文件。这些文件应该在资产中吗?是否可以在资产中设置文件夹?如果是,我如何访问这些文件夹 res/raw将是放置它们的好地方。如果将名为“article.txt”的文本文件放置在原始资源文件夹中,则首先将该文件放入如下输入流中(请注意,“ctx”是活动继承的上下文): 然后将InputStream转换为字符串。这可以通过大约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();
下面是一个完全有效的方法(使用上述转换技术)将原始文件夹中的文本文件转换为字符串。这是我从这篇文章中得到的
仍然使用“article.txt”,您可以从如下活动调用此方法:
readRawTextFile(this, R.raw.article);
谢谢您的回答,原始文件夹和资产文件夹有什么区别?是否可以为它们添加文件夹层次结构?本文将帮助您了解Android项目的项目结构。无法将子文件夹添加到任何res文件夹,这包括value、drawable、raw和其他文件夹。但是,您可以在资源中添加子文件夹。我提供的答案是针对原始资源文件的,但也有从资产文件夹和资产子文件夹中读取.txt文件的方法。是的,我知道,谢谢,问题不在于读取,而在于如何更好地读取许多txt文件?未经加工的资产没关系吧?哪一个对你来说更容易。我想说,如果你有10-20多个,使用资产并将它们分组到子文件夹中。
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();
}
readRawTextFile(this, R.raw.article);