zoukankan      html  css  js  c++  java
  • JavaCSV之读CSV文件

    Java在进行数据处理,有时候难免有进行CSV文件的操作,这里采用了JavaCSV读CSV文件。

    1.准备工作

    (1)第三方包库下载地址:https://sourceforge.net/projects/javacsv

    (2)相关文档:http://javacsv.sourceforge.net

    2.使用简单的读操作

    (1)引入javacsv包相应的类

    import com.csvreader.CsvReader;

    (2)创建文件路径

    String file = "src/com/test/csv/test.csv"; // 注意路径,这里是相对路径

    (3)创建CSV读对象

    // 创建CSV读对象(文件路径,分隔符,编码格式)
    CsvReader csvReader = new CsvReader(file, ',', Charset.forName("UTF-8"));

    (4)设置标题(非常重要),可以理解为把第一行设置为标题,如果不设置,csvReader.readRecord()将从标题行开始读取,因此有关标题、列的函数将无法使用,如getHeaders()、get("字段名")

    csvReader.readHeaders();

    (5)读取

    while (csvReader.readRecord()){
        // 读一整行
        System.out.println(csvReader.getRawRecord());
        // 读某一列
        System.out.println(csvReader.get("id"));
    }

     (6)关闭

    // 关闭
     csvReader.close();

    csv文件(test.csv):

    测试(demo.java):

     1 package com.test.csv;
     2 
     3 import com.csvreader.CsvReader;
     4 import java.io.IOException;
     5 import java.nio.charset.Charset;
     6 
     7 public class demo {
     8     public static void main(String[] args) {
     9         String file = "src/com/test/csv/test.csv";
    10       
    11         try {
    12             // 创建CSV读对象(文件路径,分隔符,编码格式)
    13             CsvReader csvReader = new CsvReader(file, ',', Charset.forName("UTF-8"));
    14 
    15             // 跳过表头 如果需要表头的话,这句可以忽略
    16             csvReader.readHeaders(); // 可以理解为把第一行设置为标题,如果不设置,将无法使用getHeaders()、get("id")           
    17 
    18             while (csvReader.readRecord()){
    19                 // 读一整行
    20                 System.out.println(csvReader.getRawRecord());
    21               
    22             }
    23              
    24             // 关闭
    25             csvReader.close();
    26 
    27         } catch (IOException e) {
    28             e.printStackTrace();
    29         }
    30 
    31     }
    32 }    

     截图:

    3.相关函数

    查看:http://javacsv.sourceforge.net/

    (1)获取标题,返回时String数组

    // 1.获取标题,返回时String数组
    csvReader.getHeaders();
    
    // 输出
    for(String s : headerList){
         System.out.println(s);
    }

    (2)获取列数

    // 获取列数
    csvReader.getHeaderCount();


  • 相关阅读:
    Js 验证中文字符长度
    Javascript技巧
    Python GUI编程(Tkinter)
    呆瓜半小时入门python数据分析
    python入门经典_好资源送不停
    pandas.merge数据连接合并
    pandas.DataFrame.sample随机抽样
    kappa系数
    对数损失函数logloss详解和python代码
    信息量_熵_条件熵_相对熵_交叉熵_互信息_信息增益_信息增益比
  • 原文地址:https://www.cnblogs.com/xiaomingzaixian/p/9744992.html
Copyright © 2011-2022 走看看