Java导出CSV文件的核心步骤(开发者参考)
-
连接数据库
使用JDBC连接MySQL、Oracle等数据库:Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db", "user", "password");
-
查询数据并写入CSV
通过ResultSet
读取数据,用FileWriter
生成CSV:try (Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM products"); FileWriter writer = new FileWriter("data.csv")) { // 写入表头 writer.append("id,name,pricen"); // 写入数据 while (rs.next()) { writer.append(rs.getString("id") + ","); writer.append(""" + rs.getString("name").replace(""", """") + "","); writer.append(rs.getString("price") + "n"); } }
关键处理:
- 字符串字段用双引号包裹:
"" + data + ""
- 转义双引号:
data.replace(""", """")
- 分隔符统一使用逗号()
- 字符串字段用双引号包裹:
-
解决常见问题
- 乱码:指定UTF-8编码
new OutputStreamWriter(new FileOutputStream("data.csv"), StandardCharsets.UTF_8)
- 大文件优化:用
BufferedWriter
提升性能
- 乱码:指定UTF-8编码
如何打开CSV文件(所有用户适用)
✅ 方法1:办公软件(推荐)
-
Microsoft Excel
双击文件 → 自动用Excel打开
注意:若数据乱码,需在导入时选UTF-8编码(步骤:数据 → 从文本/CSV → 选择文件 → 编码选UTF-8)。 -
WPS Office / LibreOffice
直接双击打开,操作与Excel类似。
✅ 方法2:文本编辑器(查看原始数据)
-
Windows记事本
右键CSV文件 → 打开方式 → 记事本
适用场景:快速检查少量数据。 -
专业编辑器(推荐)
使用VS Code、Notepad++、Sublime Text:- 支持语法高亮
- 自动识别UTF-8编码
- 处理大文件更流畅
✅ 方法3:数据库工具
- Navicat / DBeaver
- 新建数据库连接
- 右键表 → 导入向导 → 选择CSV文件
- 映射字段类型后导入查看
✅ 方法4:在线工具(小文件适用)
- 访问 CSV Viewer 或 ConvertCSV
上传文件 → 在线预览表格视图
打开CSV时的常见问题解决
-
乱码问题
- 原因:文件编码非UTF-8(如GBK)。
- 解决:用文本编辑器(VS Code/Notepad++)底部切换编码 → 保存为UTF-8。
-
数据错列
- 原因:字段内包含逗号或换行符未转义。
- 解决:用文本编辑器检查数据格式,确保带逗号的字段被双引号包裹(如
"Smith, John"
)。
-
科学计数法篡改数据
- 场景:Excel自动将长数字(如订单号)转为科学计数法。
- 解决:
- 在Excel中:导入时将该列设为文本格式
- 在CSV中:长数字前加
t
(如"t123456789012"
)
为什么选择CSV格式?
- 跨平台兼容:Windows/macOS/Linux通用
- 轻量高效:文件体积小,读写速度快
- 开发友好:Java、Python等语言均提供原生支持
引用说明:
- JDBC规范参考 Oracle官方文档
- CSV格式标准遵循 RFC 4180
- 编码问题解决方案参考 W3C字符集建议 基于Java 8+环境验证,适用于主流数据库(MySQL、PostgreSQL等)。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/40233.html