csv文件,其实就可以理解为操作“,”
写入csv
import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.text.SimpleDateFormat; import java.util.Date; public class WriteCsvUtils { /** * @param args */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Date date = new Date(); // 利用生成的时间生成文件名 以防止文件重复 造成覆盖文件的结果 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); // 写出生成csv文件 File file = new File("D:/Tonicare/Desktop/" + sdf.format(date) + ".csv"); // 追记模式 BufferedWriter bw = new BufferedWriter(new FileWriter(file, true)); bw.write("2014年上映电影大合集"); for (int i = 0; i < 3; i++) { bw.newLine(); // 新增一行数据 可以理解为换行重新编辑新的信息到csv文件 bw.write("美国队长" + "," + "201404" + "," + "已上映"); bw.newLine(); bw.write("小时代3刺金时代" + "," + "20140714" + "," + "已上映"); bw.newLine(); bw.write("秦时明月" + "," + "20140808" + "," + "已上映"); } bw.close(); } }
2.读取csv文件
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.StringTokenizer; public class ReadCsvUtils { /** * @param args */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub //CSV读取操作 //CSV文件读取主要用到java.io.BufferedReader类和java.util.StringTokenizer类, //BufferedReader用来读入文件,StringTokenizer用来将一行数据分成多个字段。 File file=new File("C:/Users/Tonicare/Desktop/8.31.csv"); BufferedReader br=new BufferedReader(new FileReader(file)); //读取直到最后一行 String line=""; while((line=br.readLine())!=null){ //把一行数据分割成多个字段 StringTokenizer st=new StringTokenizer (line,","); while(st.hasMoreTokens()){ //每一行的多个字段用tab隔开表示 System.out.println(st.nextToken()+"\t"); } System.out.println(); } br.close(); } }
实例运用
public String WriteExcel(SalesVolumeTMallListVo vo) { // TODO Auto-generated method stub String result = StringUtils.EMPTY; try{ // 生成csv文件 result = Config.APP_PATH + File.separator + "report" + File.separator + vo.getFileName()+ ".csv"; FileOutputStream fos = new FileOutputStream(result);// 写出生成csv文件 OutputStreamWriter oWriter=new OutputStreamWriter(fos,Charset.forName("GBK"));//文字编码格式 // 追记模式 BufferedWriter bw = new BufferedWriter(oWriter); bw.write(vo.getFileName()); bw.newLine(); bw.write("品牌"+","+"类目"+","+"产品条码"+","+"保质期"+","+"规格"+","+"产品名称"+","+"报站价"+","+"正常售价"+","+"促销价"+","); if(!Const.CHECKBOX_CHECKED.equals(vo.getUnidCheck())){ bw.write("华东扣点"+","+"华南扣点"+","+"华北扣点"+","+"华东销售毛利"+","+"华北销售毛利"+","+"华南销售毛利"+","); } bw.write("华东期初库存"+","+"华南期初库存"+","+"华北期初库存"+","); for (int i = 1; i <32; i++) { bw.write("华东总-"+i+","+"华东无线-"+i+","); bw.write("华南总-"+i+","+"华南无线-"+i+","); bw.write("华北总-"+i+","+"华北无线-"+i+","); } bw.write("月累计华东总"+","+"月累计华东无线"+","); bw.write("月累计华南总"+","+"月累计华南无线"+","); bw.write("月累计华北总"+","+"月累计华北无线"+","); bw.write("月累计总"+","+"月累计无线"+","); for (int i = 1; i <32; i++) { bw.write("华东-"+i+"号补货"+","); bw.write("华南-"+i+"号补货"+","); bw.write("华北-"+i+"号补货"+","); } bw.write("华东月补货合计"+","); bw.write("华南月补货合计"+","); bw.write("华北月补货合计"+","); bw.write("总计"+","); bw.write("华东期末库存"+","+"华南期末库存"+","+"华北期末库存"+","); if(!Const.CHECKBOX_CHECKED.equals(vo.getUnidCheck())){ bw.write("华东期末库存可销售天数"+","+"华东期末库存可销售月数"+","); bw.write("华南期末库存可销售天数"+","+"华东期末库存可销售月数"+","); bw.write("华北期末库存可销售天数"+","+"华东期末库存可销售月数"+","); bw.write("华东上月平均每天销量"+","+"华南上月平均每天销量"+","+"华北上月平均每天销量"+","); } Map<String,Map<String,Map<String, TMallMonthRowVo>>> map=vo.getMap();//查询得到的数据存放在vo中 map中string分别是品牌 类别 产品编码 Iterator it=map.keySet().iterator(); while(it.hasNext()){ String key; Map<String,Map<String, TMallMonthRowVo>> value; key=it.next().toString(); //品牌 value=map.get(key); Iterator it2=value.keySet().iterator(); while(it2.hasNext()){ String key2=it2.next().toString();//分类 Map<String, TMallMonthRowVo> value2=value.get(key2); Iterator it3=value2.keySet().iterator(); while(it3.hasNext()){ for (int i = 0; i < value2.size(); i++) { String key3=it3.next().toString(); TMallMonthRowVo bean=value2.get(key3); bw.newLine(); // 新增一行数据 可以理解为换行重新编辑新的信息到csv文件 bw.write(key+ "," +key2+ "," +bean.getCode()+ "," +bean.getPeriod()+ "," +bean.getSpec()+ "," +bean.getShopName() + "," +bean.getPriceQuote()+ ","+bean.getPriceStock()+ ","+bean.getPriceSale()+ "," +bean.getBeginMonthStore().get(0)+ ","+bean.getBeginMonthStore().get(1)+ ","+bean.getBeginMonthStore().get(2)+ ","); if(!Const.CHECKBOX_CHECKED.equals(vo.getUnidCheck())){ bw.write(bean.getPoints().get(0)+ ","+bean.getPoints().get(1)+ ","+bean.getPoints().get(2)+ "," +bean.getProfit().get(0)+ ","+bean.getProfit().get(1)+ ","+bean.getProfit().get(2)+ ","); } List<SalesTMallAmountVo> beansales=bean.getTmsales(); for (int j = 0; j <beansales.size(); j++) { SalesTMallAmountVo beanVo=new SalesTMallAmountVo(); beanVo.setHdAll(beansales.get(j).getHdAll()); beanVo.setHdPhone(beansales.get(j).getHdPhone()); beanVo.sethNAll(beansales.get(j).gethNAll()); beanVo.sethNPhone(beansales.get(j).gethNPhone()); beanVo.sethBAll(beansales.get(j).gethBAll()); beanVo.sethBPhone(beansales.get(j).gethBPhone()); bw.write(beanVo.getHdAll()+","+beanVo.getHdPhone()+ ","+beanVo.gethNAll()+ ","+beanVo.gethNPhone()+ ","+beanVo.gethBAll()+ ","+beanVo.gethBPhone()+ ","); } bw.write(bean.getSumHdSales()+","+bean.getSumHdPhoneSales()+","+bean.getSumHnSales()+","+bean.getSumHnPhoneSales()+","+bean.getSumHbSales()+","+bean.getSumHbPhoneSales()+","); bw.write((bean.getSumHdSales()+bean.getSumHnSales()+bean.getSumHbSales())+","+(bean.getSumHdPhoneSales()+bean.getSumHnPhoneSales()+bean.getSumHbPhoneSales())+","); List<SalesTmallRephinVo> beanrephio=bean.getTmrephins(); for (int j = 0; j <beanrephio.size(); j++) { SalesTmallRephinVo beanreRephinVo=new SalesTmallRephinVo(); beanreRephinVo.sethDRephins(beanrephio.get(j).gethDRephins()); beanreRephinVo.sethNRephins(beanrephio.get(j).gethNRephins()); beanreRephinVo.sethBRephins(beanrephio.get(j).gethBRephins()); bw.write(beanreRephinVo.gethDRephins()+","+beanreRephinVo.gethNRephins()+ ","+beanreRephinVo.gethBRephins()+ ","); } bw.write(bean.getSumHdRephins()+","+bean.getSumHnRephins()+","+bean.getSumHbRephins()+","+(bean.getSumHdRephins()+bean.getSumHnRephins()+bean.getSumHbRephins())+","); //期末库存 bw.write(bean.getEndMonthStore().get(0)+","+bean.getEndMonthStore().get(1)+","+bean.getEndMonthStore().get(2)+","); if(!Const.CHECKBOX_CHECKED.equals(vo.getUnidCheck())){ bw.write(bean.getAvgSales().get(0)+","+bean.getAvgSales().get(1)+","+bean.getAvgSales().get(2)+","+bean.getAvgSales().get(3)+","+bean.getAvgSales().get(4)+","+bean.getAvgSales().get(5)+","); bw.write(bean.getLastAvgonthList().get(0)+","+bean.getLastAvgonthList().get(1)+","+bean.getLastAvgonthList().get(2)+","); } } } } } bw.close(); oWriter.close(); fos.flush(); fos.close(); } catch (Exception e) { e.printStackTrace(); LogHelper.error(e.getMessage()); } return result; }
相关推荐
java读取写入CSV文件
在我们需求中需要读取一个csv文件的数据,但是只有旧的csv的几列数据再新写入一个csv文件,而且在旧的数据有空的数据,需要判断旧的csv的空值。可能写的存在不完善!但是应用的需求里面还是能用的
2. **创建并写入CSV文件**:创建一个`StreamWriter`对象,遍历`DataTable`的每一行和每一列,用逗号分隔数据,并写入文件。 ```csharp string outputFilePath = "output_path.csv"; using (StreamWriter writer = ...
在这个场景中,我们将深入探讨如何使用MFC来读取和写入CSV文件。 首先,理解CSV文件的结构至关重要。CSV文件以文本形式存储数据,每行代表一条记录,记录中的每个字段由逗号分隔。例如: ``` Name,Age,City John,...
### Java读取与写入CSV文件的详细解析 在日常的软件开发中,处理CSV(Comma Separated Values)文件是一种常见的需求,特别是在数据分析、数据导入导出等场景下。Java作为一种广泛使用的编程语言,提供了多种方式来...
codesys通过文件写入...d、通过SysFileClose关闭CSV文件,若文件不关闭,则下次无法读取和写入。 本文所采用的codesys版本为V3.5.14.10,参考博客地址:https://blog.csdn.net/qq_19979629/article/details/124355867
UE4 C++ 写入 CSV 文件 UE4 是一款功能强大且广泛应用的游戏引擎,而 CSV 文件是一种通用的文本文件格式,能够被多种应用程序所支持,包括 Excel。在 UE4 项目中,需要将一些数据保存到 CSV 文件中,以便于后续的...
本篇将详细介绍如何读取和写入CSV文件,并结合提供的"FastCSV-master"压缩包文件进行相关知识讲解。 首先,CSV文件的结构非常直观,每一行代表一条记录,每条记录的数据以逗号分隔。这种格式使得CSV文件可以轻松...
2. **数据准备**:在写入CSV文件之前,你需要将要存储的数据转换成字符串形式。这可能涉及到数值转换、数组到字符串的转换等操作。对于复杂的结构,可以使用“数组到字符串”函数,并通过设置分隔符来确保数据按照...
javacsv-2.0.jar包提供了CsvReader和CsvWriter两个类,分别用于读取和写入CSV文件。在本例子中,我们将展示如何使用javacsv-2.0.jar包来读取和写入CSV文件。 首先,我们需要下载javacsv-2.0.jar包,并将其添加到...
读取CSV文件时,我们可以使用`FileStream`类打开文件,然后配合`StreamReader`或`TextReader`类来读取内容。下面将详细介绍这个过程。 1. **打开文件流**: 首先,你需要创建一个`FileStream`实例,指定CSV文件的...
下面我们将深入探讨如何在Java中正确地读取和写入CSV文件,以及解决中文乱码的问题。 1. **字符编码的理解**: - 在处理中文字符时,必须确保使用正确的字符编码,例如UTF-8。UTF-8是一种广泛支持的编码格式,可以...
easy-csv, 用于读取和写入CSV文件的PHP 5.4类的集合 EasyCSVEasyCSV是面向 PHP 5.4 的简单面向对象的CSV操作库 安装通过 Composer 安装:composer require jwage/easy-csv阅读器要读
在Python编程中,将字典数据写入CSV文件是一种常见的数据操作,特别是在处理大量结构化数据时。CSV(Comma Separated Values)文件格式因其简洁、易于读取和处理的特性,广泛应用于数据交换和存储。本文将详细介绍...
在本实验中,我们将探讨如何在STM32F103ZE上实现FATFS文件系统,以及如何生成并写入CSV文件。 FATFS是DOS/Windows兼容的FAT文件系统的轻量级实现,适用于资源有限的嵌入式系统。它提供了一个通用的文件操作接口,...
在.NET开发中,处理CSV文件时,一个强大的库是CsvHelper,它提供了高效、灵活且易于使用的API,使得读取和写入CSV文件变得简单。 CsvHelper库的核心功能包括: 1. **读取CSV文件**:你可以使用`CsvReader`类来读取...
下面我们将深入探讨如何使用MFC在Visual Studio环境下读取CSV文件,并生成TXT文件。 首先,让我们了解CSV文件的结构。CSV文件以纯文本形式存储数据,每行代表一个记录,每列数据由逗号分隔。例如: ``` Name, Age,...
首先,创建CSV文件的基本过程涉及将数据写入具有特定分隔符(通常是逗号)的文本文件中。在Java中,我们可以使用内置的`java.io`或Apache Commons CSV库来实现。Apache Commons CSV提供了一套强大的API,能够轻松...
codesys通过文件读取功能块是实现对CSV文件数据的读取, a、通过SysFileOpen指令打开文件; b、通过SysFileGetSizeByHandle获取文件字符序列大小; c、通过SysFileRead读取一次读取字符序列,并按顺序依次存入预先设...
用labview来读取csv文件,labview版本是16,改一改可以用来写入csv文件