用于Excel的开源JDBC驱动程序,Maven回购的CSV文件
Maven存储库中是否有Open Source Excel / CSV / XML文件JDBC驱动程序? JDBC-ODBC桥机制非常麻烦,不能很好地支持DataSource(可选function没有实现exception)。 读/写能力是必不可less的,但只读会做什么,如果没有什么更好的。
CsvJdbc是用于读取逗号分隔值文件的Java数据库驱动程序。
http://csvjdbc.sourceforge.net/
Maven回购:
<dependency> <groupId>net.sourceforge.csvjdbc</groupId> <artifactId>csvjdbc</artifactId> <version>1.0.9</version> </dependency>
用法示例:
import java.sql.*; public class DemoDriver { public static void main(String[] args) { try { // Load the driver. Class.forName("org.relique.jdbc.csv.CsvDriver"); // Create a connection. The first command line parameter is // the directory containing the .csv files. // A single connection is thread-safe for use by several threads. Connection conn = DriverManager.getConnection("jdbc:relique:csv:" + args[0]); // Create a Statement object to execute the query with. // A Statement is not thread-safe. Statement stmt = conn.createStatement(); // Select the ID and NAME columns from sample.csv ResultSet results = stmt.executeQuery("SELECT ID,NAME FROM sample"); // Dump out the results to a CSV file with the same format // using CsvJdbc helper function boolean append = true; CsvDriver.writeToCsv(results, System.out, append); // Clean up conn.close(); } catch(Exception e) { e.printStackTrace(); } } }
OpenCSV
http://opencsv.sourceforge.net/
<dependency> <groupId>net.sf.opencsv</groupId> <artifactId>opencsv</artifactId> <version>2.0</version> </dependency>
读
CSVReader reader = new CSVReader(new FileReader("yourfile.csv")); String [] nextLine; while ((nextLine = reader.readNext()) != null) { // nextLine[] is an array of values from the line System.out.println(nextLine[0] + nextLine[1] + "etc..."); }
写
CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), '\t'); // feed in your array (or convert your data to an array) String[] entries = "first#second#third".split("#"); writer.writeNext(entries); writer.close();