Java选取TXT文件指定内容的数据存入数据库

Of Chen 2017-07-19 04:28:44

如上图txt文件的数据,如何截取红色框内的数据,并将数据存入数据库中,国内的大神,快快显灵!
...全文
142 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Of Chen 2017-07-29
  • 打赏
  • 举报
回复
抱歉,最近项目急,没空回复大家,我已经实现了这个功能,首先我们读txt文本内容的时候都是一行一行的读对吧,其次,我们写一个类,每一行我们选择我们要的列进行读,下面我贴上代码: public static int readTxtFile(String filePath, List<String[]> field_list) { // int n = 0; try { System.out.println("Run to 00......"); String encoding = "UTF-8"; File file = new File(filePath); if (file.isFile() && file.exists()) { InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding); BufferedReader bufferedReader = new BufferedReader(read); String lineTxt = null; String sample_id = ""; int count = 0; int pos = 0; System.out.println("Run to 11......"); List<String[]> field_list_t = new ArrayList<String[]>(); System.out.println("Run to 22......"); while ((lineTxt = bufferedReader.readLine()) != null) { String[] field = new String[6]; int j = getFieldTxt(lineTxt, field); if (j == 6) { if (!sample_id.equals(field[1])) { System.out.println("count1:" + count); if (count == 21) { int i; for (i = 0; i < 21; i++) { field_list.add(pos++, field_list_t.get(i)); } } field_list_t.clear(); sample_id = field[1]; count = 0; } field_list_t.add(field); System.out.println("field_list_t size:" + field_list_t.size()); count++; System.out.println("count2:" + count); } } if (count == 21) { // 最后21记录 if (field_list_t.size() == 21) { for (int i = 0; i < 21; i++) { field_list.add(pos++, field_list_t.get(i)); } } } read.close(); } else { System.out.println("找不到指定的文件"); } // return file_path_list; } catch (Exception e) { System.out.println("读取文件内容出错"); e.printStackTrace(); } System.out.println("field_list size:" + field_list.size()); // System.out.println("total number:" + n); return field_list.size(); } public static int getFieldTxt(String lineTxt, String filed[]) { int len = lineTxt.length(); String str = ""; String t; int j = 0; int n = 0; for (int i = 0; i < len - 1; i++) { t = lineTxt.substring(i, i + 1); /// System.out.println(t); if (t.equals("\t")) { // System.out.println("j:" + j); switch (j) { case 0: filed[0] = str; n++; break; case 1: filed[1] = str; n++; break; case 3: filed[2] = str; n++; break; case 4: filed[3] = str; n++; break; case 6: filed[4] = str; n++; break; case 7: n++; filed[5] = str; break; } j++; str = ""; if (j > 7) break; } else { str += t; } } if (filed[4].isEmpty() && !filed[5].isEmpty()) { // // System.out.println("field4 is null field5:" + filed[5]); filed[4] = filed[5]; } else if (filed[5].isEmpty() && !filed[4].isEmpty()) { // // System.out.println("field5 is null field4:" + filed[4]); filed[5] = filed[4]; } else if (filed[5].isEmpty() && filed[4].isEmpty()) { // return 0; } return n; } }
Of Chen 2017-07-19
  • 打赏
  • 举报
回复

插入数据库后是这样的
lyn584238910 2017-07-19
  • 打赏
  • 举报
回复
一行属于一条数据?怎么感觉你直接粘贴复制得了

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧