ก่อนอื่นเราต้องมีความเข้าใจพื้นฐานเกี่ยวกับไฟล์ CSV ไฟล์ CSV นั้นคล้ายคลึงกับ Excel และสามารถเปิดได้ด้วย Excel แต่สาระสำคัญของไฟล์ CSV ถูกแยกออกจากเครื่องหมายจุลภาคตัวอย่างเช่นรูปต่อไปนี้:
แสดงใน txt:
หลังจากแก้ไขไฟล์คำต่อท้ายเป็น CSV มันจะปรากฏขึ้นดังนี้:
ในชวาโดยทั่วไปเราใช้ POI เพื่อใช้งาน Excel นำเข้าและส่งออก แต่ POI ใช้หน่วยความจำเป็นอย่างมากโดยเฉพาะอย่างยิ่งเมื่อส่งออก ในเวลานี้เราสามารถเลือกที่จะส่งออกเพื่อสร้างไฟล์ CSV เพราะมันคล้ายกับข้อความดังนั้นจึงมีประสิทธิภาพมาก
ฉันแค่เขียนคลาสการใช้งานรหัสมีดังนี้:
/** * * ส่งออกไฟล์ที่สร้างรูปแบบ CSV * @author ccg * @param ชื่อส่วนหัวรูปแบบ CSV * @param คุณสมบัติคุณสมบัติของเอนทิตีข้อมูลที่ต้องส่งออก @throws unglegalAccessException * @throws ungloralargumentException */สาธารณะคงที่ <t> สตริง exportcsv (สตริง [] ชื่อสตริง [] คุณสมบัติรายการ <t> รายการ) โยน ioexception, unlegalargumentException, ungleclAccessException {ไฟล์ไฟล์ = ไฟล์ใหม่ ( // สร้างสตรีมเอาต์พุตและระบุการเข้ารหัส outputStreamWriter OW = ใหม่ outputStreamWriter (ใหม่ fileOutputStream (ไฟล์), "GBK"); // ไฟล์ CSV ถูกแยกออกจากเครื่องหมายจุลภาค ยกเว้นรายการแรกคุณต้องป้อนเครื่องหมายจุลภาคหลังจากเขียนข้อมูลเซลล์หนึ่งครั้งทุกครั้งหลังจากเขียนข้อมูลเซลล์หนึ่งข้อมูล {ow.write (ชื่อ); OW.WRITE (","); } // เขียนเส้นแบ่งหลังจากเขียนส่วนหัวไฟล์ ow.write ("/r/n"); // เขียนเนื้อหาสำหรับ (Object obj: list) {// ใช้การสะท้อนเพื่อรับฟิลด์ฟิลด์ทั้งหมด [] ฟิลด์ = obj.getClass (). getDeclaredFields (); สำหรับ (คุณสมบัติสตริง: คุณสมบัติ) {สำหรับ (ฟิลด์ฟิลด์: ฟิลด์) {// ตั้งค่าฟิลด์การมองเห็นฟิลด์ SetAccessible (จริง); if (property.equals (field.getName ())) {ow.write (field.get (obj) .toString ()); OW.WRITE (","); ดำเนินการต่อ; }}} // หลังจากเขียนบรรทัด break ow.write ("/r/n"); } ow.flush (); OW.close (); กลับ "0"; -คลาสทดสอบมีดังนี้:
การทดสอบโมฆะสาธารณะ () พ่น IOException, unglemalargumentException, unlegalAccessException {string [] ชื่อ = สตริงใหม่ [] {"id", "ชื่อ"}; สตริง [] คุณสมบัติ = สตริงใหม่ [] {"id", "ชื่อ"}; รายการ <user> list = new ArrayList <ผู้ใช้> (); ผู้ใช้ผู้ใช้; ผู้ใช้ = ผู้ใช้ใหม่ (); user.setId (1L); user.setName ("Zhang San"); list.add (ผู้ใช้); ผู้ใช้ = ผู้ใช้ใหม่ (); user.setId (2L); user.setName ("Li Si"); list.add (ผู้ใช้); csvutil.getInstance (). ExportCSV (ชื่อ, คุณสมบัติ, รายการ); -ไฟล์ที่สร้างขึ้นหลังจากการส่งออกเหมือนกับภาพด้านบนและถือว่าเป็นการห่อหุ้ม เพียงผ่านส่วนหัวและคุณสมบัติของเอนทิตีที่สอดคล้องกันของส่วนหัว ให้ความสนใจเพื่อให้สอดคล้องกันทีละคน
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น