[IT科技] Create CSV File Code

发表于 @ 2009-6-8 18:00:26

.Create CSV File Code: 
Java代码 
package com.ufinity.mealsordering.common.util;   
  
import java.io.FileNotFoundException;   
import java.io.FileOutputStream;   
import java.io.IOException;   
  
import com.ufinity.mealsordering.common.Config;   
import com.ufinity.mealsordering.common.Constant;   
import com.ufinity.mealsordering.dao.impl.BaseDAO;   
  
public class CreateCSVFile extends BaseDAO{   
  
    private static CreateCSVFile _createCSVFile = null;   
    private FileOutputStream _fos = null;   
    private StringBuffer _sBuffer = null;   
    private String _path = "";   
       
    public static final String DEL_CHAR = ",";   
    public static final String AV_CHAR = "\"";   
       
    public CreateCSVFile() {   
        _path = Config.getString("csv_file_path");   
        this.init(_path);   
    }   
       
    /**  
     *   
     * @param path create csv file's path  
     */  
    public void init(String path) {   
        String method = "createCSVFile_init";   
           
        if(path == null || path.trim().equals("")) {   
            _path = Constant.DEFAULT_PATH;   
        } else {   
            _path = path;   
        }   
        try {   
            _fos = new FileOutputStream(_path,false);   
            _sBuffer = new StringBuffer();   
            debug("", method, "create csv file sccuessful");   
        } catch (FileNotFoundException e) {   
            e.printStackTrace();   
            debug("", method, "not found exception of create csv file");   
        }   
    }   
       
    /**  
     * this method is append date in csv file  
     * @param data   
     */  
    public void setData(Object data) {   
        _sBuffer.append(AV_CHAR);   
        _sBuffer.append(data);   
        _sBuffer.append(AV_CHAR);   
        _sBuffer.append(DEL_CHAR);   
    }   
       
    public void writeLine() {   
        if (_sBuffer.charAt(_sBuffer.length() - 1) == ',')   
            _sBuffer.delete(_sBuffer.length() - 1, _sBuffer.length());   
        _sBuffer.append("\r\n");   
    }   
       
    /**  
     * this method is close fileoutputstream  
     */  
    public void close() {   
        String method = "close";   
        try {   
            if(_sBuffer != null) {   
                _fos.write(_sBuffer.toString().getBytes());   
                debug("", method, "close fileOutputStream successful");   
            } else {   
                debug("", method, "null point exception");   
            }   
        } catch (IOException e) {   
            debug("", method, "close fileOutputStream failure");   
        } finally {   
            try {   
                if(_fos != null) {   
                    _fos.close();   
                    _fos = null;   
                }   
            } catch (IOException e) {   
                e.printStackTrace();   
            }   
        }   
    }   
}  

package com.ufinity.mealsordering.common.util;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import com.ufinity.mealsordering.common.Config;
import com.ufinity.mealsordering.common.Constant;
import com.ufinity.mealsordering.dao.impl.BaseDAO;

public class CreateCSVFile extends BaseDAO{

	private static CreateCSVFile _createCSVFile = null;
	private FileOutputStream _fos = null;
	private StringBuffer _sBuffer = null;
	private String _path = "";
	
	public static final String DEL_CHAR = ",";
	public static final String AV_CHAR = "\"";
	
	public CreateCSVFile() {
		_path = Config.getString("csv_file_path");
		this.init(_path);
	}
	
	/**
	 * 
	 * @param path create csv file's path
	 */
	public void init(String path) {
		String method = "createCSVFile_init";
		
		if(path == null || path.trim().equals("")) {
			_path = Constant.DEFAULT_PATH;
		} else {
			_path = path;
		}
		try {
			_fos = new FileOutputStream(_path,false);
			_sBuffer = new StringBuffer();
			debug("", method, "create csv file sccuessful");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			debug("", method, "not found exception of create csv file");
		}
	}
	
	/**
	 * this method is append date in csv file
	 * @param data 
	 */
	public void setData(Object data) {
        _sBuffer.append(AV_CHAR);
        _sBuffer.append(data);
        _sBuffer.append(AV_CHAR);
        _sBuffer.append(DEL_CHAR);
    }
	
	public void writeLine() {
        if (_sBuffer.charAt(_sBuffer.length() - 1) == ',')
        	_sBuffer.delete(_sBuffer.length() - 1, _sBuffer.length());
        _sBuffer.append("\r\n");
    }
	
	/**
	 * this method is close fileoutputstream
	 */
	public void close() {
		String method = "close";
        try {
            if(_sBuffer != null) {
            	_fos.write(_sBuffer.toString().getBytes());
                debug("", method, "close fileOutputStream successful");
            } else {
            	debug("", method, "null point exception");
            }
        } catch (IOException e) {
            debug("", method, "close fileOutputStream failure");
        } finally {
            try {
				if(_fos != null) {
					_fos.close();
					_fos = null;
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
        }
    }
}


2.Create CSV File Action: 
Java代码 
/**  
     * updateExpired method is update order_history table's attribute(is  
     * expired) Expired that the <True> value is 0, 1 said that <False>  
     *   
     * @param mapping  
     * @param form  
     * @param request  
     * @param response  
     * @author wuwenqiang  
     */  
    public ActionForward updateExpired(ActionMapping mapping, ActionForm form,   
            HttpServletRequest request, HttpServletResponse response) {   
        String method = "updateExpired";   
        String createFileMethod = "createFile";   
        String userId = (String) request.getSession().getAttribute("Portal");   
        ActionMapping _mapping = null;   
           
        List allOrderHistoryList = new LinkedList();   
        List _orderHistoryList = new LinkedList();   
           
        try {   
  
            DateManager.getInstance().compareTime(_am.queryALlGlobalSettings());   
            long startTime = DateManager.getInstance().get_timeMillisStart();   
            long endTime = DateManager.getInstance().get_timeMillisEnd();   
  
            allOrderHistoryList = _am.queryOrderHistoryAll(startTime, endTime);   
            if (allOrderHistoryList == null || allOrderHistoryList.size() <= 0) {   
                this.debug(userId, createFileMethod,   
                        Constant.MESSAGE_QUERY_NOELEMENT);   
            } else {   
                 _orderHistoryList = _ohOperation   
                        .addOrderHistory(allOrderHistoryList);   
                CreateCSVFile createCSVFile = new CreateCSVFile();   
                createCSVFile.setData(Constant.RESTAURANT_NAME);   
                createCSVFile.setData(Constant.MEAL_NAME);   
                createCSVFile.setData(Constant.MEAL_PRICE);   
                createCSVFile.setData(Constant.NUM);   
                createCSVFile.setData(Constant.SUBSCRIBER_NAME);   
                createCSVFile.setData(Constant.ORDER_TIME);   
                createCSVFile.writeLine();   
                for (int i = 0; i < allOrderHistoryList.size(); i++) {   
                    OrderHistory orderHistory = (OrderHistory) allOrderHistoryList   
                            .get(i);   
                    createCSVFile.setData(orderHistory.getMeal()   
                            .getRestaurant().getRestName());   
                    createCSVFile.setData(orderHistory.getMeal().getMealName());   
                    createCSVFile.setData(orderHistory.getMeal()   
                            .getSinglePrice());   
                    createCSVFile.setData(orderHistory.getNum());   
                    createCSVFile.setData(orderHistory.getEmployee()   
                            .getFullName());   
                    createCSVFile.setData(orderHistory.getTime());   
                    createCSVFile.writeLine();   
                }   
                createCSVFile.close();   
            }       _am.updateExpired(startTime, endTime);   
               
            request.getSession().setAttribute("addOrderHistory_list",_orderHistoryList);   
            request.setAttribute("flag", "flag_true");   
            this.debug(userId, method, Constant.LOG_UPDATE_SUCCESS);   
            return mapping.findForward("list_update");   
  
        } catch (ManagerException e) {   
            e.printStackTrace();   
            this.error(userId, method, "hibernate exception", e);   
        }   
  
        this.debug(userId, method, Constant.LOG_UPDATE_FAIL);   
        request.setAttribute("flag", "flag_false");   
  
        return mapping.findForward("return_error");   
    }  

/**
	 * updateExpired method is update order_history table's attribute(is
	 * expired) Expired that the <True> value is 0, 1 said that <False>
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @author wuwenqiang
	 */
	public ActionForward updateExpired(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		String method = "updateExpired";
		String createFileMethod = "createFile";
		String userId = (String) request.getSession().getAttribute("Portal");
		ActionMapping _mapping = null;
		
		List allOrderHistoryList = new LinkedList();
		List _orderHistoryList = new LinkedList();
		
		try {

			DateManager.getInstance().compareTime(_am.queryALlGlobalSettings());
			long startTime = DateManager.getInstance().get_timeMillisStart();
			long endTime = DateManager.getInstance().get_timeMillisEnd();

			allOrderHistoryList = _am.queryOrderHistoryAll(startTime, endTime);
			if (allOrderHistoryList == null || allOrderHistoryList.size() <= 0) {
				this.debug(userId, createFileMethod,
						Constant.MESSAGE_QUERY_NOELEMENT);
			} else {
				 _orderHistoryList = _ohOperation
						.addOrderHistory(allOrderHistoryList);
				CreateCSVFile createCSVFile = new CreateCSVFile();
				createCSVFile.setData(Constant.RESTAURANT_NAME);
				createCSVFile.setData(Constant.MEAL_NAME);
				createCSVFile.setData(Constant.MEAL_PRICE);
				createCSVFile.setData(Constant.NUM);
				createCSVFile.setData(Constant.SUBSCRIBER_NAME);
				createCSVFile.setData(Constant.ORDER_TIME);
				createCSVFile.writeLine();
				for (int i = 0; i < allOrderHistoryList.size(); i++) {
					OrderHistory orderHistory = (OrderHistory) allOrderHistoryList
							.get(i);
					createCSVFile.setData(orderHistory.getMeal()
							.getRestaurant().getRestName());
					createCSVFile.setData(orderHistory.getMeal().getMealName());
					createCSVFile.setData(orderHistory.getMeal()
							.getSinglePrice());
					createCSVFile.setData(orderHistory.getNum());
					createCSVFile.setData(orderHistory.getEmployee()
							.getFullName());
					createCSVFile.setData(orderHistory.getTime());
					createCSVFile.writeLine();
				}
				createCSVFile.close();
			}		_am.updateExpired(startTime, endTime);
			
			request.getSession().setAttribute("addOrderHistory_list",_orderHistoryList);
			request.setAttribute("flag", "flag_true");
			this.debug(userId, method, Constant.LOG_UPDATE_SUCCESS);
			return mapping.findForward("list_update");

		} catch (ManagerException e) {
			e.printStackTrace();
			this.error(userId, method, "hibernate exception", e);
		}

		this.debug(userId, method, Constant.LOG_UPDATE_FAIL);
		request.setAttribute("flag", "flag_false");

		return mapping.findForward("return_error");
	}



3.DownLoad CSV File Action: 
Java代码 
/**  
     *   
     * @param mapping  
     * @param form  
     * @param request  
     * @param response  
     * @return  
     * @throws UnsupportedEncodingException  
     */  
    public ActionForward downloadCSVFile(ActionMapping mapping,   
            ActionForm form, HttpServletRequest request,   
            HttpServletResponse response) {   
        String method = "downloadCSVFile";   
        String userId = (String) request.getSession().getAttribute("Portal");   
  
        PrintWriter pw = null;   
        response.setContentType("application/octet-stream;charset=GBK");   
        response.setHeader("Content-Disposition",   
                "attachment; filename=\"mealordering.csv\"");   
        List allOrderHistoryList = new LinkedList();   
  
        String strHead = Constant.RESTAURANT_NAME + "," + Constant.MEAL_NAME   
                + "," + Constant.MEAL_PRICE + "," + Constant.NUM + ","  
                + Constant.SUBSCRIBER_NAME + "," + Constant.ORDER_TIME;   
  
        try {   
            pw = response.getWriter();   
            pw.println(strHead);   
               
            allOrderHistoryList = (List)request.getSession().getAttribute("addOrderHistory_list");   
  
            if (allOrderHistoryList == null || allOrderHistoryList.size() <= 0) {   
  
                this.debug("'", method, Constant.MESSAGE_QUERY_NOELEMENT);   
  
            } else {   
           
                for (Iterator iterator = allOrderHistoryList.iterator(); iterator   
                        .hasNext();) {   
                    OrderHistory orderHistory = (OrderHistory) iterator.next();   
                    String restName = String.valueOf(orderHistory.getMeal()   
                            .getRestaurant().getRestName());   
                    String mealName = String.valueOf(orderHistory.getMeal()   
                            .getMealName());   
                    String mealPrice = String.valueOf(orderHistory.getMeal()   
                            .getSinglePrice());   
                    String num = String.valueOf(orderHistory.getNum());   
                    String subscriber = String.valueOf(orderHistory   
                            .getEmployee().getFullName());   
                    String orderTime = String.valueOf(orderHistory.getTime());   
  
                    String strLine = "\"" + restName + "\",\"" + mealName   
                            + "\",\"" + mealPrice + "\",\"" + num + "\",\""  
                            + subscriber + "\",\"" + orderTime + "\"";   
  
                    pw.println(strLine);   
                }   
                pw.flush();   
                pw.close();   
            }   
        } catch (IOException e) {   
            e.printStackTrace();   
            this.debug(userId, method, "IOException");   
        }      
        return null;   
    }  



Copyright © 2009 老紫竹
网站地图 | 最新文章 | 未读文章 | 24小时内热点文章 |津ICP备09000085号