Java and CSV file (Comma-separated values) |
Java and CSV file (Comma-separated values) ไฟล์ CSV คือไฟล์ ที่อยู่ในรูปแบบของ Column และ Rows เหมือนกับตารางของข้อมูล โดยใช้เครื่องหมาย คอมมา (,) แบ่งข้อมูลในแต่ละคอลั่ม (แนวตั้ง) และแต่เว้นบรรทัดแทนแถว (แนวนอน) ซึ่งไฟล์ CSV จะเปรียบเหสมือนไฟล์ Text ทั่ว ๆ ไป ที่สามารถเปิดอ่านและแก้ไขด้วยโปรแกรม Notepad เพียงแต่ว่ามันมีนามสกุล .csv และไฟล์ CSV ยังเป็นมาตรฐานที่สามารถใช้กับโปรแกรมอื่น ๆ เช่น Microsoft Office Excel และโปรแกรมอื่น ๆ ที่รองรับมาตรฐานของ CSV
thaicreate.csv
C001,Win Weerachai, [email protected],TH,1000000,600000
C002,John Smith, [email protected],UK,2000000,800000
C003,Jame Born, [email protected],US,3000000,600000
C004,Chalee Angel, [email protected],US,4000000,100000
จากตัวอย่างจะเป็นรูปแบบของไฟล์ข้อมูลในรูปแบบของ CSV ที่แต่ล่ะขอบเขตของข้อมูลถูกขั้นด้วยเครื่องหมายคอมมา (,)
จากตัวอย่างถ้าชนิดข้อมูลที่เป็นตัวเลขแล้วมี comma (,) เช่น
Code
US,4,000,000,100000
จะเห็นว่าขอบเขตของข้อมูลนั้นจะปิดเพี้ยนไปทันที ฉะนั้นไฟล์ CSV ที่ถูกต้องที่สุดควรจะใช้ " " เพื่อครอบข้อความแต่ล่ะชุด
thaicreate.csv
"C001","Win Weerachai"," [email protected]","TH","1000000","600000"
"C002","John Smith"," [email protected]","UK","2000000","800000"
"C003","Jame Born"," [email protected]","US","3000000","600000"
"C004","Chalee Angel"," [email protected]","US","4000000","100000"
ซึ่งถ้าใช้แบบนี้จะไม่มีปัญหาเกี่ยวกับเครื่องหมาย , เลยชุดของข้อความ
ภาษา Java กับ CSV ไฟล์
อันที่จริงแล้ว Java สามารถใช้ Class ของ java.io เพื่อทำการอ่านหรือเขียน ข้อมูลของไฟล์ CSV ได้เช่นเดียวกับการอ่านและเขียน Text file เพียงแต่การเขียนนั้นก็ให้แบ่งแต่ล่ะชุดของข้อความด้วยเครื่องหมายคอมมมา (,) ส่วนการอ่านนั้นก็ใช้พวก function ของ split ในการแบ่งข้อความให้เป็น Array ได้ทันที แต่บางครั้งเราจะเห็นว่ามีการเรียกใช้งานพวก Library ที่เป็นไฟล์ .jar จากที่อื่น ๆ ด้วย เหตุผลหนึ่งก็คือ จะช่วยให้เราอ่านไฟล์ CSV ได้สะดวกยิ่งขั้น รวมทั้งการเขียนก็อาจจะมีพวก function ที่ช่วยให้เขียนได้ง่าย เช่น สามารถเขียนข้อมูลจาก Array ลงใน Text file ได้ทันที โดยที่เราไม่ต้องมานั่ง Loop ค่าเอง
Java and CSV file
สำหรับ Library ที่ผมเลือกใช้ในบทความก็คือ opencsv สามารถดาวน์โหลดได้ที่นี่
opencsv
หรือถ้าจะใช้พวก Class ของ java.io ก็สามารถใช้ได้ทันทีเหมือนกับการอ่านเขียน Text file
Java and File I/O
และบทความเกี่ยวกับ Java และ CSV ที่จะเขียนต่อไปนี้ ผมได้เลือกใช้ทั้งที่เป็นแบบใช้ Library .jar หรือจะใช้แค่ Class ที่มีอยู่ใน Java (java.io) แล้ว
|