代码之家  ›  专栏  ›  技术社区  ›  MatBanik

更简单的CSV到SQL java文件转换器

  •  3
  • MatBanik  · 技术社区  · 15 年前

    有没有比这更简单的方法将CSV文件转换为SQL文件?:

    BufferedReader input = new BufferedReader(new FileReader(new File("c:\\file.csv")));     
    Writer output = new BufferedWriter(new FileWriter(new File("c:\\file.sql")));
    
    try {
      String line = null;
      String[] st = null;
    
      while ((line = input.readLine()) != null) {
        st = line.replace("\"","").split(",");
    
        output.write("INSERT INTO `table` "
                        + "(`column_id`, `column1`, `column2`) VALUES "
                        + "(" + st[2] + ", " + st[0]  + ", " + st[1] +")"
                        + ";"
                        + "COMMIT;\n");
    
      }
    } finally {
      input.close();
      output.close();
    }
    
    2 回复  |  直到 15 年前
        1
  •  1
  •   javamonkey79    15 年前

    如果找不到更简单的解决方案,请小心对csv数据执行简单的拆分。根据经验,这是一个有效的csv,它将打破一个简单的拆分解决方案:

    "field 1a, field 1b", field2, "field 3a, field3b", field4
    

    我建议你去看看像这样的图书馆 opencsv 为您处理csv解析。

        2
  •  1
  •   James Anderson    15 年前

    使用一个现成的csv解析器库,如下所示 one . 否则,您将需要一个小的状态机来处理引号中的逗号等。

    我还看到您不是在执行SQL,而是在将SQL语句写入文件。大多数数据库都带有一个加载实用程序,它将接受csv文件作为输入。