Java读取本地文件,然后把数据存到mysql.(以csv文件为例)

该博客介绍了一个Java程序,用于读取本地CSV文件的内容,并将数据存储到MySQL数据库中。程序首先通过BufferedReader逐行读取文件,然后使用split方法解析CSV数据,最后将数据插入到数据库表中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

“`
package a;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class read{
/**
* 功能:Java读取txt文件的内容
* 步骤:1:先获得文件句柄
* 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取
* 3:读取到输入流后,需要读取生成字节流
* 4:一行一行的输出。readline()。
* 备注:需要考虑的是异常情况
*/
public static void readTxtFile(String filePath){
try {
BufferedReader bufferedReader = null;
Connection conn = null;
String driver = “com.mysql.jdbc.Driver”;
String url = “jdbc:mysql://localhost:3306/read_data”;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, “root”, “xinghai”);
String encoding=”utf-8”;
File file=new File(filePath);
if(file.isFile() && file.exists(

Java中,读取CSV文件并将其数据存储到MySQL数据库中,通常需要通过流式处理、分隔符解析以及SQL插入操作来完成。这里是一个简单的示,使用`OpenCSV`库读取CSV文件,`JDBC`连接MySQL: 首先,你需要添加依赖: ```xml <dependency> <groupId>com.opencsv</groupId> <artifactId>opencsv</artifactId> <version>5.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.x</version> <!-- 根据实际版本替换 --> </dependency> ``` 然后,你可以编写如下Java代码: ```java import com.opencsv.CSVReader; import java.io.FileReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; public class CSVToMySQL { private static final String CSV_FILE_PATH = "path_to_your_file.csv"; private static final String MYSQL_URL = "jdbc:mysql://localhost:3306/your_database"; private static final String USER = "your_username"; private static final String PASSWORD = "your_password"; public static void main(String[] args) { try (Connection connection = DriverManager.getConnection(MYSQL_URL, USER, PASSWORD); CSVReader reader = new CSVReader(new FileReader(CSV_FILE_PATH))) { String[] line; while ((line = reader.readNext()) != null) { // 分割每一行数据(假设逗号作为分隔符) String field1 = line[0]; String field2 = line[1]; // 需要处理字段中的引号,比如转义成两个'' String quotedField1 = escapeQuotes(field1); String quotedField2 = escapeQuotes(field2); // 构造SQL插入语句并执行 String sql = "INSERT INTO your_table (field1, field2) VALUES (?, ?)"; PreparedStatement statement = connection.prepareStatement(sql); statement.setString(1, quotedField1); statement.setString(2, quotedField2); statement.executeUpdate(); } } catch (Exception e) { System.err.println("Error reading CSV or writing to MySQL: " + e.getMessage()); } } // 辅助方法,用于处理字符串中的引号 private static String escapeQuotes(String str) { return str.replace("'", "''"); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值