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()在这里不起作用。