Android 如何从CSV文件中读取数据并将数据插入房间数据库?
我正在尝试,但是应用程序崩溃了,我得到了一个数组索引越界的错误,在日志中我得到了数据Android 如何从CSV文件中读取数据并将数据插入房间数据库?,android,database,csv,android-room,Android,Database,Csv,Android Room,我正在尝试,但是应用程序崩溃了,我得到了一个数组索引越界的错误,在日志中我得到了数据 InputStream is = getResources().openRawResource(R.raw.babynames); BufferedReader reader = new BufferedReader( new InputStreamReader(is, Charset.forName("UTF-8")) ); String line = "";
InputStream is = getResources().openRawResource(R.raw.babynames);
BufferedReader reader = new BufferedReader(
new InputStreamReader(is, Charset.forName("UTF-8"))
);
String line = "";
try {
reader.readLine();
while ((line = reader.readLine()) != null) {
Log.d("MyActivity", "Line: " + line);
String[] tokens = line.split(",");
BabyName name = new BabyName();
name.setGender(tokens[1]);
name.setMeaning(tokens[2]);
name.setName(tokens[3]);
name.setOrigin(tokens[4]);
babyNames.add(name);
Log.d(TAG, "Just created: " + name);
}
} catch (IOException e) {
Log.wtf("MyActivity", "Error reading data file on line" + line, e);
e.printStackTrace();
}
索引不应该从0开始吗
BabyName name = new BabyName();
name.setGender(tokens[1]);
name.setMeaning(tokens[2]);
name.setName(tokens[3]);
name.setOrigin(tokens[4]);
索引不应该从0开始吗
BabyName name = new BabyName();
name.setGender(tokens[1]);
name.setMeaning(tokens[2]);
name.setName(tokens[3]);
name.setOrigin(tokens[4]);
也发布错误日志也发布错误日志csv文件包含一些id我不需要它们,所以我从令牌[1]开始。您可以查看我的repo并告诉我出了什么问题吗?我正在尝试添加断点并在调试模式下运行,查看哪一行逐个保存了什么值,可能您的csv文件已损坏。我看不出代码本身有任何错误。另外,从您的CSV文件的外观来看,我看到了包含引用文本的行,如“Sri shandarachary,adwaitha哲学的创始人”,just split()在这里不起作用。CSV文件包含一些id,我不需要它们,所以我从令牌[1]开始你能看看我的回购协议,告诉我我做错了什么吗?试着添加断点并在调试模式下运行,看看哪一行一行保存了什么值,也许你的CSV文件已经损坏了。我看不出代码本身有任何错误。另外,从您的CSV文件的外观来看,我看到了包含引用文本的行,如“Sri shandarachary,adwaitha philosophy的创始人”,just split()在这里不起作用。