我有一个放在资产中的文本文件,我想一次读取一行。我的问题是我不知道如何访问Activity中的文件,然后一旦我访问它,我将如何只选择一行?
如果将txt文件保存在资产中是一个坏主意,我应该把它放在哪里以便于访问?
我真的很感激任何帮助!
答案 0 :(得分:2)
这是我用来在RSS提要阅读器中预填充表格的片段。您可以将其用作满足您需求的轨道。
在res/raw/
我有档案feeds.txt
。引用的文件是R.raw.feeds
。
final Resources resources = mHelperContext.getResources();
InputStream inputStream = resources.openRawResource(R.raw.feeds);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream), 8192);
try {
String line;
while ((line = reader.readLine()) != null) {
//make the use you want with "line"
}
} catch (IOException e) {
Log.e(TAG, "Error loading sample feeds.");
throw new RuntimeException(e);
}
答案 1 :(得分:1)
要打开资产,您需要致电
<context>.getAssets().open(<your file>);
<context>
是您的活动,因此,如果这是onCreate
,那么它将是this
。该调用返回一个输入流,然后您可以随意处理。
我不知道将文本文件保存在那里是多么糟糕的主意,取决于您使用该文本文件的内容。
答案 2 :(得分:-1)
试试这个:
创建一个新方法,例如readMyFile()。 它必须如下所示:
private String readMyFile(File file) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(file));
StringBuilder txt = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
txt.append(line);
txt.append("\n");
}
reader.close();
return txt.toString();
将其粘贴到您的代码中,然后使用该方法(readMyFile([您希望在资产中读取的文件])。
希望它有所帮助。