ssk110 2011-09-14 13:56
浏览 380
已采纳

java读取txt写入数据库的问题.

有一个txt文档,格式如下:

[color=green][分类名] 文本内容

[分类名] 文本内容

[分类名] 文本内容[/color]

如何写入数据库中(oracle 10g)
要求 [color=green][][/color] 不写入数据库,分类名和文本内容用空格隔开,各行之间有空格,如果分类名相同则只能在数据库中存在一条记录,而分类名相同的文本内容都要追加到这条记录上.

图片在附件里

  • 写回答

9条回答

  • zs_show 2011-09-14 16:56
    关注

    long start = System.currentTimeMillis();
    File file = new File("test.txt");
    Map map = new HashMap();
    try {
    FileInputStream fis = new FileInputStream(file);
    InputStreamReader isr = new InputStreamReader(fis);
    BufferedReader bf = new BufferedReader(isr);
    String str = "";
    while((str = bf.readLine()) != null){
    // String[] s = str.split(" ");
    // System.out.println(str);
    if(!"".equals(str.trim())){
    String[] s = new String[2];
    s[0] = str.substring(0,str.indexOf(" "));
    s[1] = str.substring(str.indexOf(" ")+1);
    // for (int i = 0; i < s.length; i++) {
    if(s[0].indexOf("[") != -1){
    String bookName = s[0].substring(1,s[0].length() - 1);
    if(map.containsKey(bookName)){
    String bookNames = map.get(bookName) + "," + s[1];
    map.put(bookName, bookNames);
    }else{
    map.put(bookName, s[1]);
    }
    // }
    }
    }
    }

            for (Iterator iterator = map.entrySet().iterator(); iterator.hasNext();) {
                Entry<String, String> type = (Entry<String, String>) iterator.next();
                System.out.println(type.getKey() + ":" + type.getValue());
            }
    
            long end = System.currentTimeMillis();
            System.out.println(end - start);
        } catch (Exception e) {
            e.printStackTrace();
        }
    

    我想这个方法更好

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!