`
tracy婷婷
  • 浏览: 24331 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

读取,写入csv文件

    博客分类:
  • Java
阅读更多

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文件

    java读取写入CSV文件

    java读取csv文件并将读取的数据写入新生成的csv文件

    在我们需求中需要读取一个csv文件的数据,但是只有旧的csv的几列数据再新写入一个csv文件,而且在旧的数据有空的数据,需要判断旧的csv的空值。可能写的存在不完善!但是应用的需求里面还是能用的

    C#Winform读写csv文件

    2. **创建并写入CSV文件**:创建一个`StreamWriter`对象,遍历`DataTable`的每一行和每一列,用逗号分隔数据,并写入文件。 ```csharp string outputFilePath = "output_path.csv"; using (StreamWriter writer = ...

    MFC CSV文件的读取和写入

    在这个场景中,我们将深入探讨如何使用MFC来读取和写入CSV文件。 首先,理解CSV文件的结构至关重要。CSV文件以文本形式存储数据,每行代表一条记录,记录中的每个字段由逗号分隔。例如: ``` Name,Age,City John,...

    java 读取写入csv

    ### Java读取与写入CSV文件的详细解析 在日常的软件开发中,处理CSV(Comma Separated Values)文件是一种常见的需求,特别是在数据分析、数据导入导出等场景下。Java作为一种广泛使用的编程语言,提供了多种方式来...

    Codesys读取和写入CSV数据源程序

    codesys通过文件写入...d、通过SysFileClose关闭CSV文件,若文件不关闭,则下次无法读取和写入。 本文所采用的codesys版本为V3.5.14.10,参考博客地址:https://blog.csdn.net/qq_19979629/article/details/124355867

    UE4C++写入CSV文件.docx

    UE4 C++ 写入 CSV 文件 UE4 是一款功能强大且广泛应用的游戏引擎,而 CSV 文件是一种通用的文本文件格式,能够被多种应用程序所支持,包括 Excel。在 UE4 项目中,需要将一些数据保存到 CSV 文件中,以便于后续的...

    读取和写入csv文件

    本篇将详细介绍如何读取和写入CSV文件,并结合提供的"FastCSV-master"压缩包文件进行相关知识讲解。 首先,CSV文件的结构非常直观,每一行代表一条记录,每条记录的数据以逗号分隔。这种格式使得CSV文件可以轻松...

    基于LabVIEW的CSV格式文件的写入

    2. **数据准备**:在写入CSV文件之前,你需要将要存储的数据转换成字符串形式。这可能涉及到数值转换、数组到字符串的转换等操作。对于复杂的结构,可以使用“数组到字符串”函数,并通过设置分隔符来确保数据按照...

    java读取csv例子

    javacsv-2.0.jar包提供了CsvReader和CsvWriter两个类,分别用于读取和写入CSV文件。在本例子中,我们将展示如何使用javacsv-2.0.jar包来读取和写入CSV文件。 首先,我们需要下载javacsv-2.0.jar包,并将其添加到...

    C#文件流读取CSV文件

    读取CSV文件时,我们可以使用`FileStream`类打开文件,然后配合`StreamReader`或`TextReader`类来读取内容。下面将详细介绍这个过程。 1. **打开文件流**: 首先,你需要创建一个`FileStream`实例,指定CSV文件的...

    java读写csv文件,中文乱码问题

    下面我们将深入探讨如何在Java中正确地读取和写入CSV文件,以及解决中文乱码的问题。 1. **字符编码的理解**: - 在处理中文字符时,必须确保使用正确的字符编码,例如UTF-8。UTF-8是一种广泛支持的编码格式,可以...

    easy-csv, 用于读取和写入CSV文件的PHP 5.4类的集合.zip

    easy-csv, 用于读取和写入CSV文件的PHP 5.4类的集合 EasyCSVEasyCSV是面向 PHP 5.4 的简单面向对象的CSV操作库 安装通过 Composer 安装:composer require jwage/easy-csv阅读器要读

    Python如何把字典写入到CSV文件的方法示例

    在Python编程中,将字典数据写入CSV文件是一种常见的数据操作,特别是在处理大量结构化数据时。CSV(Comma Separated Values)文件格式因其简洁、易于读取和处理的特性,广泛应用于数据交换和存储。本文将详细介绍...

    STM32F103ZE 生成并写入CSV文件 FATFS实验.rar

    在本实验中,我们将探讨如何在STM32F103ZE上实现FATFS文件系统,以及如何生成并写入CSV文件。 FATFS是DOS/Windows兼容的FAT文件系统的轻量级实现,适用于资源有限的嵌入式系统。它提供了一个通用的文件操作接口,...

    dotnet-CsvHelper用于读取和写入CSV文件的库

    在.NET开发中,处理CSV文件时,一个强大的库是CsvHelper,它提供了高效、灵活且易于使用的API,使得读取和写入CSV文件变得简单。 CsvHelper库的核心功能包括: 1. **读取CSV文件**:你可以使用`CsvReader`类来读取...

    MFC读取.csv文件

    下面我们将深入探讨如何使用MFC在Visual Studio环境下读取CSV文件,并生成TXT文件。 首先,让我们了解CSV文件的结构。CSV文件以纯文本形式存储数据,每行代表一个记录,每列数据由逗号分隔。例如: ``` Name, Age,...

    codesys读取CSV文件数据的程序

    codesys通过文件读取功能块是实现对CSV文件数据的读取, a、通过SysFileOpen指令打开文件; b、通过SysFileGetSizeByHandle获取文件字符序列大小; c、通过SysFileRead读取一次读取字符序列,并按顺序依次存入预先设...

    读取创建CSV文件并自动解析文件编码方式

    首先,创建CSV文件的基本过程涉及将数据写入具有特定分隔符(通常是逗号)的文本文件中。在Java中,我们可以使用内置的`java.io`或Apache Commons CSV库来实现。Apache Commons CSV提供了一套强大的API,能够轻松...

    用labview读取csv

    用labview来读取csv文件,labview版本是16,改一改可以用来写入csv文件

Global site tag (gtag.js) - Google Analytics