读取资产中的txt文件行

时间:2011-08-08 17:20:15

标签: java android text

我有一个放在资产中的文本文件,我想一次读取一行。我的问题是我不知道如何访问Activity中的文件,然后一旦我访问它,我将如何只选择一行?

如果将txt文件保存在资产中是一个坏主意,我应该把它放在哪里以便于访问?

我真的很感激任何帮助!

3 个答案:

答案 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([您希望在资产中读取的文件])。

希望它有所帮助。