Android 讀取CSV文件,並將數據存入數據庫


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(); }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM