java读取csv文件并将其转成json

来源:互联网 发布:1加到100的c语言程序 编辑:程序博客网 时间:2024/05/29 04:45
public class CsvUtil {private String fileName = null;    private BufferedReader br = null;    private List<String> list = new ArrayList<String>();    public CsvUtil() {    }    public CsvUtil(String fileName) throws Exception {            this.fileName = fileName;            br = new BufferedReader(new FileReader(fileName));            String stemp;            while ((stemp = br.readLine()) != null) {                    list.add(stemp);            }    }    public List getList() {            return list;    }    /**     * 获取行数     * @return     */    public int getRowNum() {            return list.size();    }    /**     * 获取列数     * @return     */    public int getColNum() {            if (!list.toString().equals("[]")) {                    if (list.get(0).toString().contains(",")) {// csv为逗号分隔文件                            return list.get(0).toString().split(",").length;                    } else if (list.get(0).toString().trim().length() != 0) {                            return 1;                    } else {                            return 0;                    }            } else {                    return 0;            }    }    /**     * 获取制定行     * @param index     * @return     */    public String getRow(int index) {            if (this.list.size() != 0) {                    return (String) list.get(index);            } else {                    return null;            }    }    /**     * 获取指定列     * @param index     * @return     */    public String getCol(int index) {            if (this.getColNum() == 0) {                    return null;            }            StringBuffer sb = new StringBuffer();            String tmp = null;            int colnum = this.getColNum();            if (colnum > 1) {                    for (Iterator it = list.iterator(); it.hasNext();) {                            tmp = it.next().toString();                            sb = sb.append(tmp.split(",")[index] + ",");                    }            } else {                    for (Iterator it = list.iterator(); it.hasNext();) {                            tmp = it.next().toString();                            sb = sb.append(tmp + ",");                    }            }            String str = new String(sb.toString());            str = str.substring(0, str.length() - 1);            return str;    }    /**     * 获取某个单元格     * @param row     * @param col     * @return     */    public String getString(int row, int col) {            String temp = null;            int colnum = this.getColNum();            if (colnum > 1) {                    temp = list.get(row).toString().split(",")[col];            } else if(colnum == 1){                    temp = list.get(row).toString();            } else {                    temp = null;            }            return temp;    }    public void CsvClose()throws Exception{            this.br.close();    }    /**    *去表头    **/    public String removehead(String str){String[] str_1=str.split(",");String sb=new String();for(int i=1;i<str_1.length;i++){sb=sb+str_1[i]+",";}return sb;    }}
public JSONArray readcsv(String path){JSONArray array=new JSONArray();CsvUtil util;try {util = new CsvUtil(path);int row=util.getRowNum();int col=util.getColNum();for(int i=0;i<col;i++){JSONObject jsonobject=new JSONObject();String value=util.getCol(i);jsonobject.put(util.getString(0, i),util.removehead(value));array.add(jsonobject);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return array;}

将其表头设为key 其他内容设为value
0 0
原创粉丝点击