Android CSV导入问题

时间:2016-03-23 12:33:51

标签: android sqlite csv

我正在尝试将CS​​V文件读入我的SQLite数据库。我目前正在使用一个按钮来运行该方法,因为我不知道在哪里调用它所以它将在应用程序启动时加载数据。当我在创建启动屏幕时调用它时会出现问题。

这是错误。

  

引起:java.io.FileNotFoundException:C:/ Users / b00619342 / Downloads / VegT(DBCodedNeedPreSetD)/app/src/main/assets/brekfasttable.csv:open failed:ENOENT(没有这样的文件或目录)< / p>

继承代码

public void brekCSV() throws IOException {

    String[] row = null;
    //need to change when the project is moved to a new location
    String csvBrek = "C:/Users/b00619342/Downloads/VegT(DBCodedNeedPreSetD)/app/src/main/assets/brekfasttable.csv";

    SQLiteDatabase db = getWritableDatabase();

    BufferedReader br = new BufferedReader(new FileReader(csvBrek));

    String line;
    while ((line = br.readLine()) != null) {
        String[] tokens = line.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)", -1);

        db.execSQL("INSERT INTO " + TABLE_BREK +
                "VALUES(" + tokens[0] + "," + tokens[1] + "," + tokens[2] + "," + tokens[3] + "," + tokens[4] + "," + tokens[5] + "," + tokens[6] + ")");
    }

    db.close();

}//end of brekCSV

2 个答案:

答案 0 :(得分:1)

您的Android设备不是您的Windows桌面。没有&#34; C:&#34;。您需要将该文件放在您的设备上,并使用正确的路径指向代码运行的设备所在的位置。

答案 1 :(得分:0)

在缓冲读取器中使用以下代码读取文件。

String filename="brekfasttable.csv";
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(getApplicationContext().getAssets().open(filename)));
        } catch (IOException e) {
            e.printStackTrace();
        }

String filename="brekfasttable.csv";
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(mainMenu.this.getAssets().open(filename)));
        } catch (IOException e) {
            e.printStackTrace();
        }