我有以下代码。我的想法是在 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/