我正在尝试从CSV文件导入所有数据并覆盖SQLite数据库中表中的数据。我有这个方法,但我收到错误:
java.lang.IllegalArgumentException: Bad class: class java.lang.String
public void onClick(DialogInterface dialog, int which) {
File root = Environment.getExternalStorageDirectory();
File exportDir = new File(root.getAbsolutePath());
File csvFile = new File(exportDir,"myfile.csv");
try {
deleteTable();
ContentValues cv = new ContentValues();
CSVReader dataRead = new CSVReader(new FileReader(csvFile));
String[] vv = null;
while((vv = dataRead.readNext())!=null) {
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
String strDate = sdf.format( vv[0] );
cv.clear();
cv.put(Table.DATA,strDate);
cv.put(Table.A,vv[1]);
cv.put(Table.B,vv[2]);
cv.put(Table.C,vv[3]);
cv.put(Table.D,vv[4]);
SQLiteDatabase db = mHelper.getWritableDatabase();
db.insert(MyTable.TABLE_NAME,null,cv);
}
dataRead.close();
} catch (Exception e) {
}
}
答案 0 :(得分:1)
String strDate = sdf.format( vv[0] );
您无法使用SimpleDateFormat.format()
格式化String
。
使用format()
将Date
个对象转换为String
个。使用parse()
将String
转换为Date
个对象。