android - 在Android中访问错误的原始资源

标签 android resources inputstream

我有以下代码。我的想法是在 OnCreate 中,我会将/res/raw 中的文本文件中的一些类别填充到我的数据库中。

首先按行对读取的文件进行标记 (myCatToken),然后我再次拆分每个文件以获取 id 和名称。

出于某种原因,我没有读取rat.txt,而是得到了一个完全不同的文件,但我不知道为什么。实际读取的文件确实存在于/res/raw 文件夹中,但名称不同。

它似乎与发送到 readTxtFromRaw 的资源有关,但我不认为它有什么问题。

谢谢

StringTokenizer myCatToken = new StringTokenizer(new String(readTxtFromRaw(R.raw.rat)));
while(myCatToken.hasMoreTokens())
{
    StringTokenizer myCatDataToken = new StringTokenizer(myCatToken.nextToken(), ",");
    String insertString = new String("insert into " + DATABASE_TABLE_CATEGORIES +
            " (" + KEY_CATEGORIES_CATID + ", " + KEY_CATEGORIES_NAME + ") values " + 
            " (" + myCatDataToken.nextToken() + ", '" + myCatDataToken.nextToken() + "')");
    db.execSQL(insertString);
}

作为引用,我包括了我正在使用的这个方法。 mCtx 是上下文:

private String readTxtFromRaw(Integer rawResource) throws IOException
{
    InputStream inputStream = mCtx.getResources().openRawResource(rawResource);
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

    int i = inputStream.read();
    while (i != -1)
    {
        byteArrayOutputStream.write(i);
        i = inputStream.read();
    }
    inputStream.close();

    return byteArrayOutputStream.toString();
}

最佳答案

转到“项目->清理...”来清理您的工作区。 因此整个项目将被重新构建,生成的类your.package.R将被刷新。

关于android - 在Android中访问错误的原始资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5919479/

相关文章:

java - 从网络(Twitter)读取 JSON 数据

python - Swift 范围超出数据长度

java - 如何将别名添加到 Android (Java) Keystore

java - Java中如何进行资源池化?

java - 不使用 Intent 将事件插入日历错误。安卓工作室

ASP.NET网站部署最佳实践资源建议

c# - 在 Winforms 应用程序中支持多种语言

Java无限数组

java - 如何只允许键盘在按下编辑文本字段时出现?

Android 错误 - close() 从未在数据库上显式调用