zoukankan      html  css  js  c++  java
  • CSV文件的读写

    转:

    CSV文件的读写

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/beyond667/article/details/8991525

       CSV是什么,以及有什么用?

       (百度一下你知道的会更多)我简单的总结就是 CSV文件(comma seperated value)即逗号分隔符,用记事本打开的话会是"a","b","c"这种格式,当然也可以改。

      用处在于可以轻松的导入表格和数据库中,一行代表一条数据,功能很吸引人吧,这样就可以批量的导入导出数据库中的值,虽然你也可以用数据库默认的导入导出表,但通过csv文件你可以方便选择过滤导出。比如你写个筛选条件把筛选后的值一条一条地放入csv文件,或者把某csv文件里的值批量导入某表,是不是很方便呢?

      要读写CSV文件需要CSVWriter 和CSVReader ,当然你要导入相应的包才行。

    用maven管理项目的话只需在你的pom文件里加入:

    1. <dependency>
    2. <groupId>net.sf.opencsv</groupId>
    3. <artifactId>opencsv</artifactId>
    4. <version>2.3</version>
    5. </dependency>

    即需要opencsv的包,如果没用maven,那么你就只能手动下载再导入项目,感觉还是maven方便,需要啥包,直接加句配置,maven自动帮你下载包和源码,方便你查看学习源码。

    下面就是用csvWriter来生成文件

    1. package com.test;
    2.  
    3. import java.io.File;
    4. import java.io.FileWriter;
    5. import java.io.IOException;
    6. import java.util.ArrayList;
    7. import java.util.List;
    8.  
    9. import au.com.bytecode.opencsv.CSVWriter;
    10.  
    11. public class Test {
    12.  
    13. /**
    14. * @param args
    15. */
    16.  
    17. public static void main(String[] args) throws IOException {
    18. CSVWriter writer = new CSVWriter(new FileWriter(new File("./1.csv")),',');
    19. List<String[]> alList=new ArrayList<String[]>();
    20. List<String> list=new ArrayList<String>();
    21. list.add("aa");
    22. list.add("bb");
    23. list.add("cc");
    24. alList.add(list.toArray(new String[list.size()]));
    25.  
    26. list=new ArrayList<String>();
    27. list.add("dd");
    28. list.add("ee");
    29. list.add("ff");
    30. alList.add(list.toArray(new String[list.size()]));
    31.  
    32. writer.writeAll(alList);
    33. writer.close();
    34. System.out.println(writer.toString());
    35.  
    36. }
    37. }

    打开生成的1.csv文件 发现是

    1. "aa","bb","cc"
    2.  
    3. "dd","ee","ff"
    4.  

    上面代码稍微介绍下,CSVWriter writer = new CSVWriter(new FileWriter(new File("./1.csv")),',');先声明一个csv文件为1.csv,并且分隔符为‘,’当然你可以换成其他的符号,默认也是逗号。和一般的写入流一样,writeAll之后需要flush()或者close(),close是时候默认会先flush的,如果不显示的调用flush或close,这些值是一直存在于缓存中不会写入文件的。

    CSVWriter有两个writeAll方法用来写入文件(流)

    public void writeAll(java.sql.ResultSet rs, boolean includeColumnNames)
    public void writeAll(List<String[]> allLines)

    看第一种,竟然可以把resultSet放进去,另外就是上面例子中的写List<String>,这时需要把你查询到的值放入list的数组。

    另外就是CSVReader了,只上例子了

    1. public static void main(String[] args) throws IOException {
    2.  
    3. CsvReader reader = new CsvReader("./1.csv ");
    4.  
    5. while (reader.readRecord()) {
    6.  
    7. String str = reader.getRawRecord();
    8. System.out.println(str);
    9.  
    10. }
    11. reader.close();
    12. }
    13. }


    和一般的读文件区别不大,相信大家看也能理解,如果后面有对CSVWriter深层次的理解,我会随时更新此文章,希望会对大家有一点点用。

  • 相关阅读:
    osc搜索引擎框架search-framework,TngouDB,gso,
    当Scheduler拿不到url的 时候,不能立即退出
    摘要算法CRC8、CRC16、CRC32,MD2 、MD4、MD5,SHA1、SHA256、SHA384、SHA512,RIPEMD、PANAMA、TIGER、ADLER32
    sha256
    非对称加密RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。使用最广泛的是RSA算法
    3个著名加密算法(MD5、RSA、DES)的解析
    DOM
    面向对象
    抽象工厂在ADO.Net中的应用
    Provider Pattern提供者模式和策略模式
  • 原文地址:https://www.cnblogs.com/libin6505/p/11654206.html
Copyright © 2011-2022 走看看