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