读取csv文件

来源:互联网 发布:数据标准化的几种方法 编辑:程序博客网 时间:2024/06/18 17:44
/** *  */package com.sdhuijin.cn;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Iterator;/** * 读取csv文件,生成SQL语句 * @author Administrator *  */public class ReadFile {/** * 读取csv文件,生成SQL语句 * @param csv */public static String ReadCSVFile() {File csv = new File("E:\\houyc\\项目\\智能终端项目\\项目文档\\数据库csv文件\\test1.csv");String crateSql = "";if (csv != null && csv.exists() && csv.isFile()) {try {BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(csv), "GBK"));String s[];ArrayList<String[]> list = new ArrayList<String[]>();// 读取第一行String firstLine = br.readLine();s = firstLine.split(",");String tableName = "";if(s.length > 0){tableName = s[0];}// 从第二行读取直到最后一行String line = "";while ((line = br.readLine()) != null) {//分割字符串s = line.split(",");//System.out.println("长度" + s.length);//for (int i = 0; i < s.length; i++) {//System.out.print("s:" + s[i] + "\t");//}//System.out.println();list.add(s);}br.close();crateSql = "CREATE TABLE IF NOT EXISTS " + tableName+ "(" + printSql(list).toString() + ")";} catch (FileNotFoundException e) {// 捕获File对象生成时的异常System.out.println("hello");e.printStackTrace();} catch (IOException e) {// 捕获BufferedReader对象关闭时的异常e.printStackTrace();}}return crateSql;}public static StringBuffer printSql(ArrayList<String[]> list) {Iterator<String[]> it1 = list.iterator();String[] s;StringBuffer sql = new StringBuffer();while (it1.hasNext()) {s = (String[]) it1.next();// 拼接类型sql.append(s[0] + " " + s[1]);// 拼接长度if ((s[2] != null) && !(s[2].equals(""))) {sql.append("(" + s[2] + ")");}// 拼接主键if (s[3].equals("Y")) {sql.append(" PRIMARY KEY");}// 拼接是否为空if (s[4].equals("N")) {sql.append(" NOT NULL");}if(s.length > 5){sql.append(" DEFAULT '" + s[5] +"'");}sql.append(",");}//截取掉最后一个逗号if ((sql.length() > 0) && (',' == sql.charAt(sql.length() - 1)))sql = sql.deleteCharAt(sql.length() - 1);return sql;}/** * @param args */public static void main(String[] args){//File csv = new File(//"E:\\houyc\\项目\\智能终端项目\\项目文档\\数据库csv文件\\公共卫生终端数据表_用户表.csv"); // CSV文件//File csv = new File(//"E:\\houyc\\项目\\智能终端项目\\项目文档\\数据库csv文件\\test1.csv"); // CSV文件System.out.println(ReadFile.ReadCSVFile());}}

0 0