我正在尝试将CSV文件读入我的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
答案 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();
}