我有以下代码。我的想法是在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是Context:
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();
}
答案 0 :(得分:2)
转到“Project-> Clean ...”清洁工作区。 所以整个项目将再次构建,生成的类your.package.R将被刷新。
答案 1 :(得分:1)
实际上我关闭了Eclipse并重新打开它,它运行正常。啧!