csv文件操作工具类

来源:互联网 发布:好笑的段子 知乎 编辑:程序博客网 时间:2024/06/06 01:15

package com.ksoft.controller.util;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ReadeCsvUtil {

private BufferedReader br = null;private List<String> list = new ArrayList<String>();public ReadeCsvUtil() {}/** * 创建一个csv文件的工具类 * @param filePath 文件路径 * @throws Exception */public ReadeCsvUtil(String filePath) throws Exception {    br = new BufferedReader(new FileReader(filePath));    String stemp;    while ((stemp = br.readLine()) != null) {        list.add(stemp);    }    this.CsvClose();}/** * 创建一个csv文件的工具类 * @param inputStream 数据流 * @throws Exception */public ReadeCsvUtil(InputStream inputStream)throws Exception{    br = new BufferedReader(new InputStreamReader(inputStream));    String stemp;    while ((stemp = br.readLine()) != null) {        list.add(stemp);    }    inputStream.close();    this.CsvClose();}public List<String> 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<String> it = list.iterator(); it.hasNext();) {            tmp = it.next().toString();            sb = sb.append(tmp.split(",")[index] + ",");        }    } else {        for (Iterator<String> 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;}private void CsvClose() throws Exception {    this.br.close();}public static void main(String[] args) throws Exception {    ReadeCsvUtil util = new ReadeCsvUtil("D:\\demo.csv");    int rowNum = util.getRowNum();    int colNum = util.getColNum();    String x = util.getRow(2);    String y = util.getCol(2);    System.out.println("rowNum:" + rowNum);    System.out.println("colNum:" + colNum);    System.out.println("x:" + x);    System.out.println("y:" + y);    for (int i = 1; i < rowNum; i++) {        for (int j = 0; j < colNum; j++) {            System.out.println("result[" + i + "|" + j + "]:" + util.getString(i, j));        }    }}

}

0 0
原创粉丝点击