精华内容
下载资源
问答
  • Java 读取CSV文件

    2017-12-26 16:09:55
    Java读取CSV文件

    Java读取CSV文件,使用readLine()按行读取
    注意:需要解决字符编码问题
    代码如下:

    public class ReadCSV {
        public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
            File csv = new File("F:\\*****\\new_trans.csv");
            InputStreamReader isr = new InputStreamReader(new FileInputStream(csv),"gb2312");
            BufferedReader br = new BufferedReader(isr);
            String line = "";
            List<String> allString = new ArrayList<String>();
            try {
                line = br.readLine();
                while(line != null){
                    System.out.println(line);
                    line = br.readLine();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    注:字符编码采用gb2312,utf-8本次测试不通过。
    
    展开全文
  • Java读取CSV文件

    2019-12-05 15:11:47
    Java读取CSV文件 什么是CSV? Comma-Separated Values,逗号分隔值 跟数据库表很相似,一行即为数据表的一行,数据表字段用半角逗号隔开 用Excel和记事本都能打开 用excel打开CSV文件出现乱码 原因:简体中文环境...

    Java读取CSV文件

    什么是CSV?

    • Comma-Separated Values,逗号分隔值
    • 跟数据库表很相似,一行即为数据表的一行,数据表字段用半角逗号隔开
    • 用Excel和记事本都能打开

    用excel打开CSV文件出现乱码

    原因:简体中文环境下,EXCEL默认用ANSI编码打开CSV文件,而原本CSV文件的编码方式是utf-8,或Unicode等方式就会出现文件乱码的情况。

    解决方法:1.用记事本打开AA.csv;2.另存为BB.csv,但是编码选择ANSI。
    在这里插入图片描述

    Java读取CSV文件

    引入依赖

    <dependency>
        <groupId>net.sourceforge.javacsv</groupId>
        <artifactId>javacsv</artifactId>
        <version>2.0</version>
    </dependency>
    

    读取数据

    public class ReadCSV {
        public static char separator = ',';
    
        public static List<Employee> readCSV(String filePath) {
            CsvReader reader = null;
            List<Employee> dataList = new ArrayList<>();
            try {
                //如果生产文件乱码,windows下用gbk,linux用UTF-8
                reader = new CsvReader(filePath, separator, Charset.forName("UTF-8"));
    
                // 读取表头
                reader.readHeaders();
                String[] headArray = reader.getHeaders();//获取标题
                for (String head : headArray) {
                    System.out.print(head + "\t\t");
                }
                System.out.println();
    
                // 逐条读取记录,直至读完
                while (reader.readRecord()) {
                    Employee employee = new Employee();
                    employee.setId(reader.get(0));
                    employee.setName(reader.get(1));
                    employee.setMobile(reader.get(2));
                    employee.setDepartment(reader.get(3));
                    employee.setRoom(reader.get(4));
                    employee.setSex(reader.get(5));
                    dataList.add(employee);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (null != reader) {
                    reader.close();
                }
            }
            return dataList;
        }
    }
    

    参考博客:

    https://www.cnblogs.com/onelikeone/p/7751506.html

    https://www.cnblogs.com/wwwjie/p/8277242.html

    展开全文
  • 主要介绍了java读取csv文件示例,这个java解析csv文件的例子很简单,下面直接上代码,大家参考使用吧
  • Java读取csv文件的数据,并将处理后的数据写入csv文件Java读取csv文件的数据,并将处理后的数据写入csv文件场景:在进行jmeter批量登录时,需要手机号码及AES加密后的手机号码思路:1.将手机号码存入csv文件;2.读取...

    Java读取csv文件的数据,并将处理后的数据写入csv文件

    Java读取csv文件的数据,并将处理后的数据写入csv文件

    场景:

    在进行jmeter批量登录时,需要手机号码及AES加密后的手机号码

    思路:

    1.将手机号码存入csv文件;

    2.读取csv文件中的手机号到list集合中;

    3.遍历集合将数据分组存入map集合;

    4.遍历map集合,调用AES加密类,将手机号进行AES加密处理,并将结果写入csv文件。

    代码:

    MobileInfo.java

    package file_test;

    public class MobileInfo {

    private String phone;

    private String aes_phone;

    public String getAes_phone() {

    return aes_phone;

    }

    public void setAes_phone(String aes_phone) {

    this.aes_phone = aes_phone;

    }

    public String getPhone() {

    return this.phone;

    }

    public void setPhone(String phone) {

    this.phone = phone;

    }

    }

    csvRead.java

    package file_test;

    import java.io.BufferedReader;

    import java.io.BufferedWriter;

    import java.io.File;

    import java.io.FileReader;

    import java.io.FileWriter;

    import java.io.IOException;

    import java.util.ArrayList;

    import java.util.HashMap;

    import java.util.List;

    import java.util.Map;

    import aes_test2.AesUtil;

    public class csvRead {

    public static void main(String[] args){

    List mobileinfos = new ArrayList();//保存读取csv得到的数据

    Map> map = new HashMap>();//phone,aes_phone的map集合

    String phone = null;

    List mapMobileInfos = new ArrayList();//map集合中phone的对应的对象集合

    BufferedReader reader = null;

    //读写csv数据到list(mobileinfos)集合中

    try {

    reader = new BufferedReader(new FileReader("D://phone.csv"));//换成你的文件名

    String line = null;

    while((line=reader.readLine())!=null){

    String data[] = line.split(",");//CSV格式文件为逗号分隔符文件,这里根据逗号切分

    MobileInfo dkinfo = new MobileInfo();

    dkinfo.setPhone(data[0]);

    //dkinfo.setAes_phone(data[1]);

    mobileinfos.add(dkinfo);

    System.out.println(data[0]);

    }

    //遍历集合,将数据分组存入map集合

    for(MobileInfo mobileinfo : mobileinfos){

    phone = mobileinfo.getPhone();

    mapMobileInfos = map.get(phone);//获取对应phone的集合,第一次获取时为空

    if(mapMobileInfos == null){//这里如果不进行为空判断,会报空指针异常

    mapMobileInfos = new ArrayList();

    }

    mapMobileInfos.add(mobileinfo);//将新添加的对象加入到对应的phone的对象集合

    map.put(phone, mapMobileInfos); //将每次新添加对象后的对象集合存入对应map中

    }

    //遍历map集合,并将结果写入新的csv文件

    File newcsv=new File("D://newcsv.csv");

    BufferedWriter bw=new BufferedWriter (new FileWriter(newcsv,true));

    for (Map.Entry> entry : map.entrySet()) {

    String bright_phone=entry.getKey();

    AesUtil aes = new AesUtil();

    String encStr = aes.encryptByHex(bright_phone);//使用aes加密手机号

    //将加密后的数据写入csv

    bw.write(entry.getKey() + "," + encStr);

    System.out.println("手机号 = " + entry.getKey() + ", AES加密手机号 = " + encStr);

    bw.newLine();//换行

    }

    bw.close();

    } catch (Exception e) {

    e.printStackTrace();

    } finally{

    try {

    reader.close();

    mobileinfos.clear();

    map.clear();

    mapMobileInfos.clear();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    }

    处理后的csv文件

    ed50bfa43f7531d9147506a67b34fce5.png

    Java读取csv文件的数据,并将处理后的数据写入csv文件相关教程

    展开全文
  • java读取csv文件

    2015-01-16 14:28:19
       java读取csv文件  CSV其实就是COMMA SEPARATED VALUE的缩写。 在开发中用Java操作csv文件有专门的的API叫javacsv.jar javacsv.jar下载地址: ...下面演
    
        

    java读取csv文件

            CSV其实就是COMMA SEPARATED VALUE的缩写。
    在开发中用Java操作csv文件有专门的的API叫javacsv.jar

    javacsv.jar下载地址:
    http://sourceforge.net/project/showfiles.php?group_id=33066

     


    下面演示一段操作代码仅供参考:

     

    Java代码 复制代码 收藏代码
    1. package com.syc.test.bean;   
    2.   
    3. public class ReslutBean {   
    4.     String help_keyword_id;   
    5.     String name;   
    6.   
    7.     public String getHelp_keyword_id() {   
    8.         return help_keyword_id;   
    9.     }   
    10.   
    11.     public void setHelp_keyword_id(String help_keyword_id) {   
    12.         this.help_keyword_id = help_keyword_id;   
    13.     }   
    14.   
    15.     public String getName() {   
    16.         return name;   
    17.     }   
    18.   
    19.     public void setName(String name) {   
    20.         this.name = name;   
    21.     }   
    22.   
    23. }  
    1. package com.syc.test.bean;  
    2.   
    3. public class ReslutBean {  
    4.     String help_keyword_id;  
    5.     String name;  
    6.   
    7.     public String getHelp_keyword_id() {  
    8.         return help_keyword_id;  
    9.     }  
    10.   
    11.     public void setHelp_keyword_id(String help_keyword_id) {  
    12.         this.help_keyword_id = help_keyword_id;  
    13.     }  
    14.   
    15.     public String getName() {  
    16.         return name;  
    17.     }  
    18.   
    19.     public void setName(String name) {  
    20.         this.name = name;  
    21.     }  
    22.   
    23. }  
    package com.syc.test.bean;
    
    public class ReslutBean {
    	String help_keyword_id;
    	String name;
    
    	public String getHelp_keyword_id() {
    		return help_keyword_id;
    	}
    
    	public void setHelp_keyword_id(String help_keyword_id) {
    		this.help_keyword_id = help_keyword_id;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    }
    

     

    Java代码 复制代码 收藏代码
    1. package com.syc.test.javaCSV;   
    2.   
    3. import java.io.IOException;   
    4. import java.nio.charset.Charset;   
    5. import java.util.ArrayList;   
    6. import java.util.List;   
    7.   
    8. import com.csvreader.CsvReader;   
    9. import com.csvreader.CsvWriter;   
    10. import com.syc.test.DAO.ConnectionDB;   
    11. import com.syc.test.bean.ReslutBean;   
    12.   
    13. public class Java2CSV {   
    14.     /**  
    15.      * @param args  
    16.      * @throws Exception  
    17.      */  
    18.     public static void main(String[] args) throws Exception {   
    19.         // 从获取将要写入csv文件的结果集   
    20.         List<ReslutBean> list = new ArrayList<ReslutBean>();   
    21.         list = ConnectionDB.querySQL();   
    22.   
    23.         // 预组装csv文件内容标题行   
    24.         String[][] data = new String[list.size() + 1][2];   
    25.         data[0][0] = "Help_keyword_id";   
    26.         data[0][1] = "Name";   
    27.   
    28.         // 预组装csv文件内容   
    29.         int len = list.size();   
    30.         for (int i = 0; i < len; i++) {   
    31.             data[i + 1][0] = list.get(i).getHelp_keyword_id();   
    32.             data[i + 1][1] = list.get(i).getName();   
    33.         }   
    34.   
    35.         writerCsv("e://c测试.csv", data);   
    36.         readerCsv("e://c测试.csv");   
    37.     }   
    38.   
    39.     /**  
    40.      * 读取csv  
    41.      *   
    42.      * @param csvFilePath  
    43.      * @throws Exception  
    44.      */  
    45.     public static void readerCsv(String csvFilePath) throws Exception {   
    46.   
    47.         CsvReader reader = new CsvReader(csvFilePath, ',',   
    48.                 Charset.forName("GBK"));// shift_jis日语字体,utf-8  
    49.         reader.readHeaders();   
    50.         String[] headers = reader.getHeaders();   
    51.   
    52.         List<Object[]> list = new ArrayList<Object[]>();   
    53.         while (reader.readRecord()) {   
    54.             list.add(reader.getValues());   
    55.         }   
    56.         Object[][] datas = new String[list.size()][];   
    57.         for (int i = 0; i < list.size(); i++) {   
    58.             datas[i] = list.get(i);   
    59.         }   
    60.   
    61.         /*  
    62.          * 以下输出  
    63.          */  
    64.   
    65.         for (int i = 0; i < headers.length; i++) {   
    66.             System.out.print(headers[i] + "\t");   
    67.         }   
    68.         System.out.println("");   
    69.   
    70.         for (int i = 0; i < datas.length; i++) {   
    71.             Object[] data = datas[i]; // 取出一组数据  
    72.             for (int j = 0; j < data.length; j++) {   
    73.                 Object cell = data[j];   
    74.                 System.out.print(cell + "\t");   
    75.             }   
    76.             System.out.println("");   
    77.         }   
    78.     }   
    79.   
    80.     /**  
    81.      * 写入csv  
    82.      *   
    83.      * @param csvFilePath文件名路径  
    84.      *            +文件名字  
    85.      * @param data数据项  
    86.      */  
    87.     public static void writerCsv(String csvFilePath, String[][] data) {   
    88.   
    89.         CsvWriter writer = null;   
    90.         try {   
    91.             writer = new CsvWriter(csvFilePath, ',', Charset.forName("GBK"));// shift_jis日语字体,utf-8  
    92.   
    93.             for (int i = 0; i < data.length; i++) {   
    94.                 writer.writeRecord(data[i]);   
    95.             }   
    96.         } catch (IOException e) {   
    97.             e.printStackTrace();   
    98.         } finally {   
    99.             writer.close();   
    100.         }   
    101.     }   
    102. }  
    1. package com.syc.test.javaCSV;  
    2.   
    3. import java.io.IOException;  
    4. import java.nio.charset.Charset;  
    5. import java.util.ArrayList;  
    6. import java.util.List;  
    7.   
    8. import com.csvreader.CsvReader;  
    9. import com.csvreader.CsvWriter;  
    10. import com.syc.test.DAO.ConnectionDB;  
    11. import com.syc.test.bean.ReslutBean;  
    12.   
    13. public class Java2CSV {  
    14.     /** 
    15.      * @param args 
    16.      * @throws Exception 
    17.      */  
    18.     public static void main(String[] args) throws Exception {  
    19.         // 从获取将要写入csv文件的结果集  
    20.         List<ReslutBean> list = new ArrayList<ReslutBean>();  
    21.         list = ConnectionDB.querySQL();  
    22.   
    23.         // 预组装csv文件内容标题行  
    24.         String[][] data = new String[list.size() + 1][2];  
    25.         data[0][0] = "Help_keyword_id";  
    26.         data[0][1] = "Name";  
    27.   
    28.         // 预组装csv文件内容  
    29.         int len = list.size();  
    30.         for (int i = 0; i < len; i++) {  
    31.             data[i + 1][0] = list.get(i).getHelp_keyword_id();  
    32.             data[i + 1][1] = list.get(i).getName();  
    33.         }  
    34.   
    35.         writerCsv("e://c测试.csv", data);  
    36.         readerCsv("e://c测试.csv");  
    37.     }  
    38.   
    39.     /** 
    40.      * 读取csv 
    41.      *  
    42.      * @param csvFilePath 
    43.      * @throws Exception 
    44.      */  
    45.     public static void readerCsv(String csvFilePath) throws Exception {  
    46.   
    47.         CsvReader reader = new CsvReader(csvFilePath, ',',  
    48.                 Charset.forName("GBK"));// shift_jis日语字体,utf-8  
    49.         reader.readHeaders();  
    50.         String[] headers = reader.getHeaders();  
    51.   
    52.         List<Object[]> list = new ArrayList<Object[]>();  
    53.         while (reader.readRecord()) {  
    54.             list.add(reader.getValues());  
    55.         }  
    56.         Object[][] datas = new String[list.size()][];  
    57.         for (int i = 0; i < list.size(); i++) {  
    58.             datas[i] = list.get(i);  
    59.         }  
    60.   
    61.         /* 
    62.          * 以下输出 
    63.          */  
    64.   
    65.         for (int i = 0; i < headers.length; i++) {  
    66.             System.out.print(headers[i] + "\t");  
    67.         }  
    68.         System.out.println("");  
    69.   
    70.         for (int i = 0; i < datas.length; i++) {  
    71.             Object[] data = datas[i]; // 取出一组数据  
    72.             for (int j = 0; j < data.length; j++) {  
    73.                 Object cell = data[j];  
    74.                 System.out.print(cell + "\t");  
    75.             }  
    76.             System.out.println("");  
    77.         }  
    78.     }  
    79.   
    80.     /** 
    81.      * 写入csv 
    82.      *  
    83.      * @param csvFilePath文件名路径 
    84.      *            +文件名字 
    85.      * @param data数据项 
    86.      */  
    87.     public static void writerCsv(String csvFilePath, String[][] data) {  
    88.   
    89.         CsvWriter writer = null;  
    90.         try {  
    91.             writer = new CsvWriter(csvFilePath, ',', Charset.forName("GBK"));// shift_jis日语字体,utf-8  
    92.   
    93.             for (int i = 0; i < data.length; i++) {  
    94.                 writer.writeRecord(data[i]);  
    95.             }  
    96.         } catch (IOException e) {  
    97.             e.printStackTrace();  
    98.         } finally {  
    99.             writer.close();  
    100.         }  
    101.     }  
    102. }  
    package com.syc.test.javaCSV;
    
    import java.io.IOException;
    import java.nio.charset.Charset;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.csvreader.CsvReader;
    import com.csvreader.CsvWriter;
    import com.syc.test.DAO.ConnectionDB;
    import com.syc.test.bean.ReslutBean;
    
    public class Java2CSV {
    	/**
    	 * @param args
    	 * @throws Exception
    	 */
    	public static void main(String[] args) throws Exception {
    		// 从获取将要写入csv文件的结果集
    		List<ReslutBean> list = new ArrayList<ReslutBean>();
    		list = ConnectionDB.querySQL();
    
    		// 预组装csv文件内容标题行
    		String[][] data = new String[list.size() + 1][2];
    		data[0][0] = "Help_keyword_id";
    		data[0][1] = "Name";
    
    		// 预组装csv文件内容
    		int len = list.size();
    		for (int i = 0; i < len; i++) {
    			data[i + 1][0] = list.get(i).getHelp_keyword_id();
    			data[i + 1][1] = list.get(i).getName();
    		}
    
    		writerCsv("e://c测试.csv", data);
    		readerCsv("e://c测试.csv");
    	}
    
    	/**
    	 * 读取csv
    	 * 
    	 * @param csvFilePath
    	 * @throws Exception
    	 */
    	public static void readerCsv(String csvFilePath) throws Exception {
    
    		CsvReader reader = new CsvReader(csvFilePath, ',',
    				Charset.forName("GBK"));// shift_jis日语字体,utf-8
    		reader.readHeaders();
    		String[] headers = reader.getHeaders();
    
    		List<Object[]> list = new ArrayList<Object[]>();
    		while (reader.readRecord()) {
    			list.add(reader.getValues());
    		}
    		Object[][] datas = new String[list.size()][];
    		for (int i = 0; i < list.size(); i++) {
    			datas[i] = list.get(i);
    		}
    
    		/*
    		 * 以下输出
    		 */
    
    		for (int i = 0; i < headers.length; i++) {
    			System.out.print(headers[i] + "\t");
    		}
    		System.out.println("");
    
    		for (int i = 0; i < datas.length; i++) {
    			Object[] data = datas[i]; // 取出一组数据
    			for (int j = 0; j < data.length; j++) {
    				Object cell = data[j];
    				System.out.print(cell + "\t");
    			}
    			System.out.println("");
    		}
    	}
    
    	/**
    	 * 写入csv
    	 * 
    	 * @param csvFilePath文件名路径
    	 *            +文件名字
    	 * @param data数据项
    	 */
    	public static void writerCsv(String csvFilePath, String[][] data) {
    
    		CsvWriter writer = null;
    		try {
    			writer = new CsvWriter(csvFilePath, ',', Charset.forName("GBK"));// shift_jis日语字体,utf-8
    
    			for (int i = 0; i < data.length; i++) {
    				writer.writeRecord(data[i]);
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			writer.close();
    		}
    	}
    }
    

      

     

    当然你还可以用supecsv 或者 opencsv啦。

    先下载javacsv2.0.zip的文件,解压后,把javacsv.jar 添加到项目中。

     

    官方下载地址:
    http://sourceforge.net/project/showfiles.php?group_id=33066

    API地址:

    http://javacsv.sourceforge.net/
    简单的操作代码:

    Java代码 复制代码 收藏代码
    1. import java.io.IOException;   
    2. import java.nio.charset.Charset;   
    3. import java.util.ArrayList;   
    4. import com.csvreader.CsvReader;   
    5. import com.csvreader.CsvWriter;   
    6.     
    7. public class DB2ExportCsv   
    8. {   
    9.     /**  
    10.     * 读取CSV文件  
    11.     */  
    12.     public void  readCsv(){   
    13.         try {       
    14.                 ArrayList<String[]> csvList = new ArrayList<String[]>(); //用来保存数据  
    15.                 String csvFilePath = "D:/log/Alarm20101125.csv";   
    16.                 CsvReader reader = new CsvReader(csvFilePath,',',Charset.forName("SJIS"));    //一般用这编码读就可以了      
    17.                     
    18.                 reader.readHeaders(); // 跳过表头   如果需要表头的话,不要写这句。  
    19.                     
    20.                 while(reader.readRecord()){ //逐行读入除表头的数据      
    21.                     csvList.add(reader.getValues());   
    22.                 }               
    23.                 reader.close();   
    24.                     
    25.                 for(int row=0;row<csvList.size();row++){   
    26.                      String  cell = csvList.get(row)[0]; //取得第row行第0列的数据  
    27.                      System.out.println(cell);   
    28.                 }        
    29.             } catch (Exception ex) {   
    30.                     System.out.println(ex);   
    31.                 }   
    32.     }   
    33.        
    34.     /**  
    35.      * 写入CSV文件  
    36.      */  
    37.     public static void WriteCsv(){   
    38.         try {   
    39.                 String csvFilePath = "D:/log/Alarm20101125.csv";   
    40.                 CsvWriter wr =new CsvWriter(csvFilePath,',',Charset.forName("SJIS"));   
    41.                 String[] contents = {"告警信息","非法操作","没有权限","操作失败"};                       
    42.                 wr.writeRecord(contents);   
    43.                 wr.close();   
    44.          } catch (IOException e) {   
    45.             e.printStackTrace();   
    46.          }   
    47.     }   
    48. }  
    1. import java.io.IOException;  
    2. import java.nio.charset.Charset;  
    3. import java.util.ArrayList;  
    4. import com.csvreader.CsvReader;  
    5. import com.csvreader.CsvWriter;  
    6.    
    7. public class DB2ExportCsv  
    8. {  
    9.     /** 
    10.     * 读取CSV文件 
    11.     */  
    12.     public void  readCsv(){  
    13.         try {      
    14.                 ArrayList<String[]> csvList = new ArrayList<String[]>(); //用来保存数据  
    15.                 String csvFilePath = "D:/log/Alarm20101125.csv";  
    16.                 CsvReader reader = new CsvReader(csvFilePath,',',Charset.forName("SJIS"));    //一般用这编码读就可以了      
    17.                    
    18.                 reader.readHeaders(); // 跳过表头   如果需要表头的话,不要写这句。  
    19.                    
    20.                 while(reader.readRecord()){ //逐行读入除表头的数据      
    21.                     csvList.add(reader.getValues());  
    22.                 }              
    23.                 reader.close();  
    24.                    
    25.                 for(int row=0;row<csvList.size();row++){  
    26.                      String  cell = csvList.get(row)[0]; //取得第row行第0列的数据  
    27.                      System.out.println(cell);  
    28.                 }       
    29.             } catch (Exception ex) {  
    30.                     System.out.println(ex);  
    31.                 }  
    32.     }  
    33.       
    34.     /** 
    35.      * 写入CSV文件 
    36.      */  
    37.     public static void WriteCsv(){  
    38.         try {  
    39.                 String csvFilePath = "D:/log/Alarm20101125.csv";  
    40.                 CsvWriter wr =new CsvWriter(csvFilePath,',',Charset.forName("SJIS"));  
    41.                 String[] contents = {"告警信息","非法操作","没有权限","操作失败"};                      
    42.                 wr.writeRecord(contents);  
    43.                 wr.close();  
    44.          } catch (IOException e) {  
    45.             e.printStackTrace();  
    46.          }  
    47.     }  
    48. }  
    import java.io.IOException;
    import java.nio.charset.Charset;
    import java.util.ArrayList;
    import com.csvreader.CsvReader;
    import com.csvreader.CsvWriter;
     
    public class DB2ExportCsv
    {
        /**
        * 读取CSV文件
        */
        public void  readCsv(){
            try {    
    				ArrayList<String[]> csvList = new ArrayList<String[]>(); //用来保存数据
    				String csvFilePath = "D:/log/Alarm20101125.csv";
    				CsvReader reader = new CsvReader(csvFilePath,',',Charset.forName("SJIS"));    //一般用这编码读就可以了    
    				 
    				reader.readHeaders(); // 跳过表头   如果需要表头的话,不要写这句。
    				 
    				while(reader.readRecord()){ //逐行读入除表头的数据    
    					csvList.add(reader.getValues());
    				}            
    				reader.close();
    				 
    				for(int row=0;row<csvList.size();row++){
    				     String  cell = csvList.get(row)[0]; //取得第row行第0列的数据
    				     System.out.println(cell);
    				}     
    			} catch (Exception ex) {
    					System.out.println(ex);
    				}
        }
        
        /**
         * 写入CSV文件
         */
        public static void WriteCsv(){
            try {
    				String csvFilePath = "D:/log/Alarm20101125.csv";
    				CsvWriter wr =new CsvWriter(csvFilePath,',',Charset.forName("SJIS"));
    				String[] contents = {"告警信息","非法操作","没有权限","操作失败"};                    
    				wr.writeRecord(contents);
    				wr.close();
             } catch (IOException e) {
                e.printStackTrace();
             }
        }
    }
    

     想了解更多的函数请查看javacsv2.0/doc/index.html说明。我觉得javacsv2.0/src/AllTests.java看看也很有用。大家可以去试试

     

     

    此代码可以解决字段中出现分隔符,双引号等等。。。


    Java代码 复制代码 收藏代码
    1. /**  
    2.      * 对于文件中字段包含逗号的文件的特殊处理 (同时可以去除掉双引号)处理完以后会在相同的路径下输出相同文件名的TXT文件  
    3.      *   
    4.      * @throws Exception  
    5.      */  
    6.     public static void specialChar(String filePath,int starRow) throws Exception {   
    7.   
    8.         BufferedReader br = null;   
    9.         File f = new File(filePath);   
    10.         String fileName = f.getName();   
    11.   
    12.         if (!fileName.substring(fileName.indexOf(".") + 1).equals("csv")) {   
    13.             throw new Exception(filePath + "不是一个CSV文件");   
    14.         }   
    15.         File file = new File(StringUtil.replace(f.getPath(), "csv""txt"));   
    16.         FileWriter filewriter = null;   
    17.         try {   
    18.             br = new BufferedReader(new InputStreamReader(   
    19.                     new FileInputStream(f), "utf-8"));   
    20.             filewriter = new FileWriter(file, false);   
    21.             SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");   
    22.   
    23.             System.out.println(sd.format(new Date()));   
    24.             String tempString = null;   
    25.             int i = 0;   
    26.             while ((tempString = br.readLine()) != null) {   
    27.                 if (i < starRow-1) {   
    28.                     i++;   
    29.                     continue;   
    30.                 }   
    31.                 if(tempString.trim().equals(""))   
    32.                     break;   
    33.                 if (StringUtil.contains(tempString, "\"")) {   
    34.                     tempString = deepParser(tempString,filePath);   
    35.                 } else  
    36.                     tempString = StringUtil.replace(tempString, ",""|");   
    37. //              System.out.println(tempString);   
    38.                 filewriter.write(stringTrim(tempString, "\\|") + "\r\n");   
    39.                 i++;   
    40.             }   
    41.             System.out.println(sd.format(new Date()));   
    42.         } catch (Throwable e) {   
    43.             log.warn("解析文件:【" + filePath + "】出错", e);   
    44.             e.printStackTrace();   
    45.         } finally {   
    46.             try {   
    47.                 br.close();   
    48.                 filewriter.close();   
    49.             } catch (IOException e) {   
    50.                 e.printStackTrace();   
    51.             }   
    52.         }   
    53.   
    54.     }   
    55.   
    56.     public static String deepParser(String str,String filePath) {   
    57.         System.out.println(str);   
    58.         String temp = str;   
    59.                           str = str+",";   
    60.         StringBuffer sb = new StringBuffer();   
    61.         try {   
    62.             int from = 0;   
    63.             int end = str.length();   
    64.             int i = 0;   
    65.             while (StringUtil.contains((str = str.substring(from)), "\"")) {   
    66.                 from = str.indexOf("\"");   
    67.                 end = str.indexOf("\"", from + 1);   
    68.                 sb.append(StringUtil.replace(str.substring(0, from), ",""|"));   
    69.                 sb.append(str.substring(from + 1, end));   
    70.                 from = end + 1;   
    71.                 i++;   
    72.             }   
    73.             sb.append(StringUtil.replace(str, ",""|"));   
    74.         } catch (Throwable e) {   
    75.             log.warn("解析文件:【" + filePath + "】出错,一下数据有问题:"+temp, e);   
    76.             e.printStackTrace();   
    77.         }   
    78.                        String s = sb.toString();   
    79.              s = s.substring(0, s.lastIndexOf("|"));   
    80.              return s;   
    81.     }   
    82.   
    83.   
    84.     //去除字段2边空格,可以指定分隔符   
    85.     public static String stringTrim(String str, String regex) {   
    86.         str = str+" ";   
    87.         String[] strs = str.split(regex);   
    88.         StringBuffer sb = new StringBuffer();   
    89.   
    90.         for (int i = 0; i < strs.length; i++) {   
    91.             sb.append(strs[i].trim() + "|");   
    92.         }   
    93.   
    94.         return sb.toString().substring(0, sb.toString().lastIndexOf("|"));   
    95.     }  
    展开全文
  • Java读取csv文件

    万次阅读 2017-09-28 09:31:04
    简介:总结用java通过读取csv文件方法,为用csv文件来做数据驱动测试提供解决方案创建csv文件用WPS表格或excel创建文件,填写数据,另存为选择CSV格式进行保存,如下图: 安装读取csv文件的jar包jar包下载地址:...
  • java 读取csv文件

    2012-08-31 18:26:10
    java 语言读取csv文件,避免导入Excel时出现的单元格取值的问题
  • 在开发中用Java操作csv文件有专门的的API叫javacsv.jarjavacsv.jar下载地址:http://sourceforge.net/project/showfiles.php?group_id=33066packagecom.syc.test.javaCSV;importjava.io.IOException;i...
  • java 读取csv 文件

    2021-04-08 13:18:05
    csv 格式 本质 上位文本类型数据,目前解析方式查找过来就一种,需要注意的就是在读取csv前需要知道csv编码格式才可以正确解析 /** * 获取流对应的编码类型 * @param bb * @return * @throws Exception */ ...
  • JAVA读取csv文件

    2020-12-24 22:02:02
    package ollie1; import java.nio.charset....import com.csvreader.CsvReader; import edu.knowitall.ollie.OllieExtraction; import edu.knowitall.ollie.OllieExtractionInstance; import ollie1.java_ollie;
  • csv文件默认编码为ANSI,java读取CSV出现乱码主要是编码不一致问题。(推荐:java视频教程)DataInputStream in = new DataInputStream(new FileInputStream(new File("d:\\*.csv")));BufferedReader br= new ...
  • java读取CSV文件

    2019-11-14 15:38:34
    因为项目之前有写入CSV文件的功能,但是没有读取,网上有其他的方法,但是为了方便,决定还是使用之前的openCSV,搜索了一番之后,各种花里胡哨,然后正好找到了官方的文档,随便翻了一下,正好找到读取的方法,就...
  • 大家知道什么叫做Csv文件吗?其实它是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中。此文件,一行即为数据表的一行。生成数据表字段用半角...那么今天我们就来解析Java读取Csv文件实践。最常...
  • java 读取csv文件We can use Java Scanner Class to read CSV File in java. 我们可以使用Java扫描程序类在Java读取CSV文件。 读取Java中的CSV文件 (Read CSV File in Java) We can use Java Scanner class to ...
  • 主要介绍了JAVA对CSV格式文本数据处理后再保存成新CSV格式文本的模板,可以学习到java读取csv文件和写csv的方法,需要的朋友可以参考下
  • JAVA 读取CSV文件

    千次阅读 2019-02-22 14:11:16
    * @Title: 读取csv文件到一个数组 * @date 2018/8/717:05 */ public class HandleCsv { static String[] item = {}; @SuppressWarnings("resource") public static String[] Handle() { try { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,185
精华内容 474
关键字:

java读取csv文件

java 订阅