Java 如何读取 CSV
处理数据表格时,CSV这种用逗号分隔的“轻量级表格”几乎无处不在——不管是导出的通讯录、电商的订单明细,还是统计软件输出的调研数据,它都是不用装复杂软件就能打开的通用格式。很多人刚接触Java时,会觉得“读取文件”是个复杂的事,其实只要找对工具,几步就能搞定,而且全程不用写晦涩的代码。
先搞懂:CSV到底是什么?
别被“术语感”吓到,CSV就是用逗号把表格的每一行内容分开的文本文件。比如你用Excel导出一份水果清单,存成CSV后,打开看会是这样:

`
苹果,5,12
香蕉,3,8
草莓,10,25
`
每一行是一个水果条目,逗号把“名称”“数量”“单价”拆开了。读取它的核心,就是把这些被逗号分开的内容,按行拼成你需要的信息。
不用复杂工具,Java自带的基础方法够用吗?
很多新手会想“是不是要装什么插件?”其实不用——Java自带的BufferedReader类,就能直接读CSV的内容,适合处理小文件(比如几百行以内的清单)。举个生活化的例子:就像你把打印好的清单,逐行用手指划着看,再把每一行的逗号内容拆出来。
比如你有个fruit.csv文件,放在Java项目的根目录里,用基础方法写代码就两步:
打开文件的“读取通道”,逐行读内容;
用逗号把每一行的内容拆成数组,拿到你要的信息。
代码不用写得太复杂,核心逻辑是:用split(",")方法把字符串按逗号切分,切出来的每个元素就是表格里的“单元格”。比如第一行"苹果,5,12",切分后变成["苹果", "5", "12"],刚好对应表格的三列。
遇到复杂CSV?别硬拆,用专门的工具更省心
如果CSV里有特殊情况——比如有的单元格里真的带逗号(比如“红富士,苹果”),或者内容带双引号(Excel导出时经常这么处理),硬拆逗号就会出错。这时候用专门的CSV解析工具,比自己写代码更靠谱,而且是Java生态里的“常用装备”。
最常用的是Apache Commons CSV,这个工具就像给你配了个“智能拆分工”,自动识别逗号、引号这些特殊规则,不用自己写判断。比如要读刚才的水果清单,用这个工具的话,代码会自动把带引号的内容拆对,哪怕单元格里有逗号也不会乱。
举个实际场景的例子:你做电商项目,要把用户导出的订单CSV导入系统,里面的“商品名称”可能有“零食,饼干”这种带逗号的内容,用基础方法会把它拆成两项,导致订单信息错乱,而用专门工具就能正确识别成一个商品名称,不会出错。
小提醒:读取CSV要注意的2个细节
不管用哪种方法,有两个容易踩的小坑要避开:
一是文件编码,很多CSV默认是UTF-8,要是用旧的GBK编码读,会出现乱码(比如中文变成奇怪的符号),所以读文件时要指定编码格式,就像你要喝热奶茶,得先确认温度对不对;
二是跳过表头,很多CSV第一行是“名称,数量,单价”这种表头,读取时别把表头当成数据处理,就像整理清单时,先把“表头行”和“数据行”分开,别把标题当成商品内容。
其实Java读CSV的核心,就是“把文本按行拆分,再按规则拆单元格”——简单的小文件用自带工具,复杂的带特殊格式的用专门库,像整理家里的收纳盒,按大小选合适的盒子,不用硬凑。