首页 > 技术文章 > Android 读取CSV文件,并将数据存入数据库

carrieLee 2015-10-09 13:10 原文

Android菜鸟,公司项目中要读取服务器的csv文件,然后将数据显示出来,这个以前没有接触过,于是在网上看了不少读取csv的方法:

1.用正则表达式。正则表达式这方面并不了解,于是看不懂ORZ...

2.用sqlite工具将csv导入到sqlite数据库。但我想实现的是从代码中插入到数据库,而.import不知道在代码中要用什么替代,所以这种方法也被我抛弃了

3.用StringTokenizer。按行读取,将分割出来的字段存到List中。我用这种方式实现了,现在记录下来,便于以后查阅。

For example:

(未完...)

/**
* csvPath : csv路径,例如 G:\SenimarInfo.csv
*/
private
void getCSV(String csvPath) { ArrayList<SeminarInfo> dataLists=new ArrayList<SeminarInfo>(); ArrayList<String> lists=new ArrayList<String>(); SeminarInfo mSeminarInfo=new SeminarInfo(); if (dataLists != null) { dataLists.clear(); } //_______________________导入到数据库,未成功______________________________ mSeminarInfoDB = new SeminarInfoDBHelper(mContext); db = mSeminarInfoDB.getWritableDatabase(); try { BufferedReader br=new BufferedReader(new FileReader(csvFile)); String line=""; int i=0; while ((line = br.readLine()) != null) {//一次一行,lists.size()=14,28,42... // 把一行数据分割成多个字段 StringTokenizer st = new StringTokenizer(line, "|"); while(st.hasMoreTokens()){//一次一个 lists.size()=1 String str=st.nextToken(); lists.add(str); // System.out.println("_______________tokens__________________"+str); } System.out.println("_______________size__________________"+lists.size()); if(lists.size()>14){ ///**ID|EventID|CompanyID|Booth|Date|Time|Hall|RoomNo|PresentCompany|Topic|Speaker|langID|OrderFull|OrderMob mSeminarInfo.setId(lists.get(14+i)); mSeminarInfo.setEventID(lists.get(15+i)); mSeminarInfo.setCompanyID(lists.get(16+i)); mSeminarInfo.setBooth(lists.get(17+i)); mSeminarInfo.setDate(lists.get(18+i)); mSeminarInfo.setTime(lists.get(19+i)); mSeminarInfo.setHall(lists.get(20+i)); mSeminarInfo.setRoomNo(lists.get(21+i)); mSeminarInfo.setPresentCompany(lists.get(22+i)); mSeminarInfo.setTopic(lists.get(23+i)); mSeminarInfo.setSpeaker(lists.get(24+i)); mSeminarInfo.setLangID(lists.get(25+i)); dataLists.add(mSeminarInfo); i=i+14; System.out.println("dataLists.toString()——————>"+dataLists.toString()); // System.out.println("_______________i__________________"+i); // System.out.println("_______________mSeminarInfo__________________"+mSeminarInfo.getId()+"***"+mSeminarInfo.getEventID()+"***"+mSeminarInfo.getLangID()); } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }

 

推荐阅读