怎么将一个文本文件的内容读取并存入数据库?

不是宇宙浪子 2015-10-21 09:56:50
我想做一个智能聊天机器人,首先要把词库导入数据库,字典(文本文件)的文件排版是:







我想过通过字符流读取然后存入数据库,试过好几次都行不通,大神帮忙看看

代码和文本格式如图

...全文
730 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mygithub 2015-10-25
  • 打赏
  • 举报
回复
最好不要用图片,直接贴代码

for(int j=0;list.get(j) != null && j<474; j++) {
        if(list.contains(list.get(j))){
          list.remove(j);
          list.remove(j+1);
        }
}
获取了List以后,为何还要在remove掉? 你把这段for循环去掉看看。 优化意见:用HashMap,用两个ArrayList单元来表示实在不好
冰思雨 2015-10-23
  • 打赏
  • 举报
回复
使用HashMap作为数据的缓存。 读取文本内容到HashMap里面,不要用List,效率比较低。 遍历HashMap进行数据插入。 JDBC,使用PreparedStatement,使用代?的SQL,每次循环设置新的数据,执行空参数的executeUpdate方法。 效率较高。
DY1201 2015-10-23
  • 打赏
  • 举报
回复
没有抛异常吗????
qq_1187001749 2015-10-23
  • 打赏
  • 举报
回复
"insert into smart_message set message = " + s1 + " response = " + s2
qq_1187001749 2015-10-23
  • 打赏
  • 举报
回复


在每句话后边加一个特殊符号“]” ,根据特殊符号进行截取

BufferedReader reader = null;
try {
String str;
reader = new BufferedReader(new FileReader("E:/资料/测试.txt"));
while ((str = reader.readLine()) != null) {
String[] tarray = str.split("]");

for(int i=0;i<tarray.length;i++){
if(i/2==0){
String s1 =tarray[i];
System.out.println(s1);
}else{
String s2 =tarray[i];
System.out.println(s2);
}
}
// System.out.println(str);
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
//关闭
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
心随自在飞 2015-10-23
  • 打赏
  • 举报
回复
那么问题来了, 你的问题到底出在哪里?
从小就很呆 2015-10-23
  • 打赏
  • 举报
回复
你这种一一对应的,完全可以用properties文件,然后读取放在map的集合中,然后插入数据库,你最起码得说明下你上面报什么错吧
这个逗b 2015-10-22
  • 打赏
  • 举报
回复
vswen5 2015-10-22
  • 打赏
  • 举报
回复
存啥数据库啊费劲 直接存到一个文本里*.json就好了格式就这样{"哈哈":"笑啥笑啊打死你","不要哭":"55555~~"} 然后你在读取这个文件和解析就好了

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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