ตัวอย่างในบทความนี้จะอธิบายวิธีการสร้างไฟล์ CSV ใน Java เป็นหลัก ขั้นตอนการใช้งานเฉพาะมีดังนี้:
1. สร้างไฟล์ CSVUtils.java ใหม่:
แพ็คเกจ com.saicfc.pmpf.internal.manage.utils; นำเข้า java.io.BufferedWriter; นำเข้า java.io.File; นำเข้า java.io.FileInputStream; นำเข้า java.io.FileNotFoundException; นำเข้า java.io.FileOutputStream; นำเข้า java .io.IOException;นำเข้า java.io.InputStream;นำเข้า java.io.OutputStream;นำเข้า java.io.OutputStreamWriter;นำเข้า java.net.URLEncoder;นำเข้า java.util.ArrayList;นำเข้า java.util.Iterator;นำเข้า java.util.LinkedHashMap;นำเข้า java.util.List;นำเข้า java .util.Map;นำเข้า javax.servlet.http.HttpServletResponse;นำเข้า org.apache.commons.beanutils.BeanUtils;/** * การทำงานของไฟล์*/คลาสสาธารณะ CSVUtils { /** * สร้างเป็นไฟล์ CVS* @param ExportData * รายการข้อมูลต้นฉบับ * @param map * รายการแผนที่ส่วนหัวของไฟล์ csv * @param outPutPath * เส้นทางของไฟล์ * @param fileName * ชื่อไฟล์ * @return */ @SuppressWarnings("rawtypes") ไฟล์คงที่สาธารณะ createCSVFile (รายการส่งออกข้อมูล, แผนที่ LinkedHashMap, สตริง outPutPath, ชื่อไฟล์สตริง) { ไฟล์ csvFile = null; BufferedWriter csvFileOutputStream = null; ลอง { ไฟล์ไฟล์ = ไฟล์ใหม่ (outPutPath); } //กำหนดรูปแบบชื่อไฟล์และสร้าง csvFile = File.createTempFile(fileName, ".csv", ไฟล์ใหม่ (outPutPath)); System.out.println ("csvFile: " + csvFile); // UTF-8 เปิดใช้งานการอ่านตัวคั่นที่ถูกต้อง "," csvFileOutputStream = new BufferedWriter (new OutputStreamWriter (new FileOutputStream) (csvFile), "UTF-8"), 1024); System.out.println("csvFileOutputStream: " + csvFileOutputStream); // เขียนส่วนหัวของไฟล์สำหรับ (Iterator propertyIterator = map.entrySet().iterator(); propertyIterator.hasNext();) { java.util.Map propertyEntry = (java.util.Map.Entry) propertyIterator.next(); csvFileOutputStream .write(""" + (สตริง) propertyEntry.getValue() != null ? (สตริง) propertyEntry .getValue() : "" + """); if (propertyIterator.hasNext()) { csvFileOutputStream.write(","); } } csvFileOutputStream.newLine(); //เขียนเนื้อหาไฟล์สำหรับ (Iterator iterator = ExportData.iterator(); iterator.hasNext();) { แถววัตถุ = (วัตถุ) iterator.next(); สำหรับ (Iterator propertyIterator = map.entrySet().iterator(); propertyIterator .hasNext();) { java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator .next(); csvFileOutputStream.write((สตริง) BeanUtils.getProperty(แถว, (สตริง) propertyEntry.getKey())); if (propertyIterator.hasNext()) { csvFileOutputStream.write(","); } } if (iterator.hasNext()) { csvFileOutputStream.newLine( } } csvFileOutputStream.flush() } จับ (ข้อยกเว้น e) { e.printStackTrace(); } ในที่สุด { try { csvFileOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } return csvFile; } /** * ดาวน์โหลดไฟล์ * @param response * @param csvFilePath * เส้นทางของไฟล์ * @param fileName * ชื่อไฟล์ * @throws IOException */ โมฆะคงที่สาธารณะ ExportFile (การตอบสนอง HttpServletResponse, สตริง csvFilePath, ชื่อไฟล์สตริง) พ่น IOException { response.setContentType("application/csv;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder. encode(fileName, "UTF-8")); InputStream in = null; ลอง { in = new FileInputStream(csvFilePath); int len = 0; ไบต์ใหม่[1024]; อ่าน (บัฟเฟอร์)) > 0) { out.write (ไบต์ใหม่ [] { (ไบต์) 0xEF, (ไบต์) 0xBB, (ไบต์) 0xBF }); out.write(buffer, 0, len); } } catch (FileNotFoundException e) { System.out.println(e); } ในที่สุด { ถ้า (ใน != null) { ลอง { in.close() ; } catch (ข้อยกเว้น e) { Throw new RuntimeException(e); * เส้นทางไดเร็กทอรีไฟล์ * / public static void DeleteFiles(String filePath) { File file = new File(filePath); if (file.exists()) { File[] files = file.listFiles(); ; i < files.length; i++) { if (files[i].isFile()) { files[i].delete(); filePath * เส้นทางไดเร็กทอรีไฟล์ * @param fileName * ชื่อไฟล์ */ public static void DeleteFile (String filePath, String fileName) { File file = new File (filePath); if (file.exists()) { File [] files = file .listFiles(); for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { ถ้า (files[i].getName().equals(fileName)) { files[i].delete(); return; ", "ไม่ได้ตรวจสอบ" }) โมฆะสาธารณะคงหลัก (สตริง [] args) { รายการส่งออกข้อมูล = ใหม่ ArrayList <แผนที่> (); แผนที่ row1 = ใหม่ LinkedHashMap<String, String>(); row1.put("1", "11"); row1.put("2", "12"); row1.put("3", "13"); put("4", "14"); exitData.add(row1); row1 = new LinkedHashMap<String, String>(); row1.put("1", "21"); row1.put("2", "22"); row1.put("3", "23"); row1.put("4", "24"); mapedHashMap = ใหม่ LinkedHashMap(); map.put("1", "คอลัมน์แรก"); map.put("2", "คอลัมน์ที่สอง"); map.put("3", "คอลัมน์ที่สาม"); map.put("4", "คอลัมน์ที่สี่"); String path = "c:/export/"; String fileName = "File Export"; fileName2 = file.getName(); System.out.println("ชื่อไฟล์: " + fileName2 }}
2. เรียกใช้เมธอด createCSVFile เพื่อสร้างไฟล์ CSV
ชื่อสตริง = "ข้อมูลการคืนเงินของธนาคาร";List ExportData = new ArrayList();LinkedHashMap datamMap = null;for (Iterator iterator = allowanceList.iterator(); iterator.hasNext();) { HashMap map = (HashMap) iterator ถัดไป (); datamMap = LinkedHashMap(); datamMap.put("1", map.get("merOrderId")); datamMap.put("2",DateUtil.convertDateToString("yyyyMMdd", (วันที่) map.get("orderTime"))); จำนวน BigDecimal = (BigDecimal) map.get( "จำนวน"); String amountString = amount.divide(new BigDecimal(10)).toPlainString(); datamMap.put("3", amountString); datamMap.put("4", map.get("remark") != null ? map.get("remark") : ""); ;} แผนที่ LinkedHashMap = ใหม่ LinkedHashMap(); map.put("1", "หมายเลขคำสั่งซื้อ"); map.put("2", "วันที่ชำระเงิน"); map.put("3", "จำนวนเงินสดที่ส่งคืน (หน่วยจำนวนเต็ม: cents)"); map.put("4", "เหตุผลในการส่งคืน"); File file = CSVUtils.createCSVFile(exportData, map, filePath, name );//สร้างไฟล์ CSV fileName = file.getName(); CSVUtils.exportFile(response, filePath + fileName, fileName);//ดาวน์โหลดไฟล์ CSV ที่สร้างขึ้น