读取,写入csv文件

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;
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值