java的csv格式文件的生成,以及获取,以及获取csv某一列

以下是共有方法,在赋值下列方法时将共有方法先拷进去 

/**
     * 功能说明:获取UTF-8编码文本文件开头的BOM签名。
     * BOM(Byte Order Mark),是UTF编码方案里用于标识编码的标准标记。例:接收者收到以EF BB BF开头的字节流,就知道是UTF-8编码。
     * @return UTF-8编码文本文件开头的BOM签名
     */
     public static String getBOM() {

          byte b[] = {(byte)0xEF, (byte)0xBB, (byte)0xBF};
          return new String(b);
     }

 /**
     * 功能说明:获取UTF-8编码文本文件开头的BOM签名。
     * BOM(Byte Order Mark),是UTF编码方案里用于标识编码的标准标记。例:接收者收到以EF BB BF开头的字节流,就知道是UTF-8编码。
     * @return UTF-8编码文本文件开头的BOM签名
     */
     public static String getBOM() {

          byte b[] = {(byte)0xEF, (byte)0xBB, (byte)0xBF};
          return new String(b);
     }

(1).读取csv文件数据:

/**
     * 读取csv数据
     * hw
     * @param file csv文件(路径+文件)
     * @return
     */
    public static List<String> importCsv(File file){
         List<String> dataList=new ArrayList<String>();
         BufferedReader br=null;
         try {
             InputStreamReader fReader = new InputStreamReader(new FileInputStream(file),"GBK");
         br = new BufferedReader(fReader);
         String line = "";
                 while ((line = br.readLine()) != null) {
                dataList.add(line);
                 }
         }catch (Exception e) {
         }finally{
         if(br!=null){
             try {
                 br.close();
                 br=null;
             } catch (IOException e) {
                     e.printStackTrace();
             }
         }
                 }
         return dataList;
    }

(2)生成csv文件

方法一:

/**@Title exportCsv(根据文件路径,数据源生成csv表格)
     * @Description TODO
     * @param file
     * @param dataList
     * @return   boolean 
     * @author HongWei
     * @data 2019年6月20日下午2:55:02
     */
    public static boolean exportCsv(File file, List<String> dataList){
         boolean isSucess=false;
         FileOutputStream out=null;
         OutputStreamWriter osw=null;
         BufferedWriter bw=null;
         try {
         out = new FileOutputStream(file);
         osw = new OutputStreamWriter(out, "UTF-8");
         bw =new BufferedWriter(osw, 1024);
         bw.write(getBOM());//防止乱码
             if(dataList!=null && !dataList.isEmpty()){
             for(String data : dataList){
             bw.append(data).append("\r");
             }
         }
         isSucess=true;
         } catch (Exception e) {
           isSucess=false;
         }finally{
             if(bw!=null){
             try {
             bw.close();
             bw=null;
             } catch (IOException e) {
             e.printStackTrace();
             }
         }
         if(osw!=null){
             try {
             osw.close();
             osw=null;
             } catch (IOException e) {
             e.printStackTrace();
             }
         }

             if(out!=null){

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值