Java_CreateCSVFile



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:
/**
	 * 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:
/**
	 * 
	 * @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;
	}

你可能感兴趣的:(java,Hibernate)