CSV文件是以逗号分隔值的文件格式,一般用WORDPAD或记事本(NOTE),EXCEL打开。CSV(逗号分隔值)是一种用来存储数据的纯文本文件,通常都是用于存放电子表格或数据的一种文件格式,对于CSV文件的读取与生成其实很简单,只要读取的时候用(,)进行切割就可以获得相应的列元素,在生成的时候不同的列元素之间加上(,

demo如下:

   //读取CSV文件
public void readCsvFile(String fileName) throws IOException {
BufferedReader bufferedReader=null;
try{
bufferedReader=new BufferedReader(new FileReader(fileName));
String line=null;
while(null!=(line=bufferedReader.readLine())){
String[] lines = line.split(",");
logger.info("这就是文件的内容"+ Arrays.toString(lines));
}
}catch (IOException e){
throw new IOException(e);
}finally {
if(bufferedReader!=null){
try {
bufferedReader.close();
} catch (IOException e) {
logger.error("输入流关流出现异常",e);
}
}
}
}

  

    //生产CSV文件
public static void writerCsvFile(String fileName, List<String[]> list) throws IOException {
BufferedWriter bufferedWriter=null;
try{
bufferedWriter= new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName),"GBK"));
for (String[] s:list) {
for (int i=0;i<s.length;i++){
bufferedWriter.write(s[i]);
bufferedWriter.write(",");
}
bufferedWriter.newLine();//记得换行
}
}catch (IOException e){
throw new IOException(e);
}finally {
if(bufferedWriter!=null){
try {
bufferedWriter.close();
} catch (IOException e2) {
logger.error("输出流关流出现异常",e2);
}
}
}
}

  值得注意的是:在进行生成CSV文件的时候,对于长的数字组成的字符串的写入,CSV会自动进行数字化转换,即科学计数法,对于要不要处理,还是根据需求来定

   如果是想直观的双击打开就不要进行转换的话,就要在写入的时候,告诉CSV,我不是写的数字,可以进行再写的时候拼接\t,;等信息

   如果生成的CSV文件,也是使用的输入流进行读取的话,不用做处理,会自动进行识别,因为这个是CSV文件的格式

最新文章

  1. Linux下用ftp更新web内容!
  2. oracle 开窗分析函数和树形结构
  3. 第一周 总结笔记 / 斯坦福-Machine Learning-Andrew Ng
  4. paip.mysql 性能跟iops的以及硬盘缓存的关系
  5. mvc 修改 删除 linq
  6. Android Socket通信
  7. 面试之BI-SQL--table转换[2]
  8. [RQNOJ313]波浪数
  9. 499 - What&#39;s The Frequency, Kenneth?
  10. Unity CommandInvokationFailure: Failed to re-package resources. 解决方案
  11. JDK和Tomcat部署
  12. C#常用单元测试框架比较:XUnit, NUnit, 和 Visual Studio(MSTest)
  13. C#语言支持的特性,.NET却不支持,那么C#不被.NET支持的部分又是如何在.NET上运行的呢?
  14. 2018/12/20 20:52:42 螺纹钢PTA豆粕
  15. icomet研究
  16. STL——heap结构及算法
  17. 用java编写一个函数,用于计算桌子的面积,可计算任意边长的桌子
  18. map函数和reduce函数、filter函数的区别
  19. Math 类的使用(一小部分)
  20. Linux input子系统学习总结(一)---- 三个重要的结构体

热门文章

  1. MySQL(安装,服务,创建用户及授权)
  2. webstrom 一直反复indexing
  3. javascript浅拷贝深拷贝理解记录
  4. 解决Windows 8.1 应用商店中安装程序挂起的解决
  5. 基于jeesite+android开发 电子商务系统免费教程
  6. jvm(2)类的初始化(二)和实例化
  7. jQuery过滤选择器:first和:first-child的区别,CSS伪类:first-child
  8. h5聊天室web端(仿微博、微信)|h5仿微信网页端|仿微信界面弹窗
  9. 做了三年的菜鸟web前端的感悟
  10. zabbix 自定义 key (转)