use of org.h2.tools.Csv in project h2database by h2database.
the class TestCsv method testColumnNames.
private void testColumnNames() throws Exception {
ResultSet rs;
rs = new Csv().read(new StringReader("Id,First Name,2x,_x2\n1,2,3"), null);
assertEquals("ID", rs.getMetaData().getColumnName(1));
assertEquals("First Name", rs.getMetaData().getColumnName(2));
assertEquals("2x", rs.getMetaData().getColumnName(3));
assertEquals("_X2", rs.getMetaData().getColumnName(4));
rs = new Csv().read(new StringReader("a,a\n1,2"), null);
assertEquals("A", rs.getMetaData().getColumnName(1));
assertEquals("A1", rs.getMetaData().getColumnName(2));
rs = new Csv().read(new StringReader("1,2"), new String[] { "", null });
assertEquals("C1", rs.getMetaData().getColumnName(1));
assertEquals("C2", rs.getMetaData().getColumnName(2));
}
use of org.h2.tools.Csv in project h2database by h2database.
the class TestCsv method testOptions.
private void testOptions() {
Csv csv = new Csv();
assertEquals(",", csv.getFieldSeparatorWrite());
assertEquals(SysProperties.LINE_SEPARATOR, csv.getLineSeparator());
assertEquals("", csv.getNullString());
assertEquals('\"', csv.getEscapeCharacter());
assertEquals('"', csv.getFieldDelimiter());
assertEquals(',', csv.getFieldSeparatorRead());
assertEquals(",", csv.getFieldSeparatorWrite());
assertEquals(0, csv.getLineCommentCharacter());
assertEquals(false, csv.getPreserveWhitespace());
String charset;
charset = csv.setOptions("escape=\\ fieldDelimiter=\\\\ fieldSeparator=\n " + "lineComment=\" lineSeparator=\\ \\\\\\ ");
assertEquals(' ', csv.getEscapeCharacter());
assertEquals('\\', csv.getFieldDelimiter());
assertEquals('\n', csv.getFieldSeparatorRead());
assertEquals("\n", csv.getFieldSeparatorWrite());
assertEquals('"', csv.getLineCommentCharacter());
assertEquals(" \\ ", csv.getLineSeparator());
assertFalse(csv.getPreserveWhitespace());
assertFalse(csv.getCaseSensitiveColumnNames());
charset = csv.setOptions("escape=1x fieldDelimiter=2x " + "fieldSeparator=3x " + "lineComment=4x lineSeparator=5x " + "null=6x charset=7x " + "preserveWhitespace=true caseSensitiveColumnNames=true");
assertEquals('1', csv.getEscapeCharacter());
assertEquals('2', csv.getFieldDelimiter());
assertEquals('3', csv.getFieldSeparatorRead());
assertEquals("3x", csv.getFieldSeparatorWrite());
assertEquals('4', csv.getLineCommentCharacter());
assertEquals("5x", csv.getLineSeparator());
assertEquals("6x", csv.getNullString());
assertEquals("7x", charset);
assertTrue(csv.getPreserveWhitespace());
assertTrue(csv.getCaseSensitiveColumnNames());
charset = csv.setOptions("escape= fieldDelimiter= " + "fieldSeparator= " + "lineComment= lineSeparator=\r\n " + "null=\0 charset=");
assertEquals(0, csv.getEscapeCharacter());
assertEquals(0, csv.getFieldDelimiter());
assertEquals(0, csv.getFieldSeparatorRead());
assertEquals("", csv.getFieldSeparatorWrite());
assertEquals(0, csv.getLineCommentCharacter());
assertEquals("\r\n", csv.getLineSeparator());
assertEquals("\0", csv.getNullString());
assertEquals("", charset);
createClassProxy(Csv.class);
assertThrows(ErrorCode.FEATURE_NOT_SUPPORTED_1, csv).setOptions("escape=a error=b");
assertEquals('a', csv.getEscapeCharacter());
}
use of org.h2.tools.Csv in project h2database by h2database.
the class TestCsv method testRandomData.
private void testRandomData() throws SQLException {
deleteDb("csv");
Connection conn = getConnection("csv");
Statement stat = conn.createStatement();
stat.execute("drop table if exists test");
stat.execute("create table test(id identity, a varchar, b varchar)");
int len = getSize(1000, 10000);
PreparedStatement prep = conn.prepareStatement("insert into test(a, b) values(?, ?)");
ArrayList<String[]> list = New.arrayList();
Random random = new Random(1);
for (int i = 0; i < len; i++) {
String a = randomData(random), b = randomData(random);
prep.setString(1, a);
prep.setString(2, b);
list.add(new String[] { a, b });
prep.execute();
}
stat.execute("call csvwrite('" + getBaseDir() + "/test.csv', 'select a, b from test order by id', 'UTF-8', '|', '#')");
Csv csv = new Csv();
csv.setFieldSeparatorRead('|');
csv.setFieldDelimiter('#');
ResultSet rs = csv.read(getBaseDir() + "/test.csv", null, "UTF-8");
for (int i = 0; i < len; i++) {
assertTrue(rs.next());
String[] pair = list.get(i);
assertEquals(pair[0], rs.getString(1));
assertEquals(pair[1], rs.getString(2));
}
assertFalse(rs.next());
conn.close();
FileUtils.delete(getBaseDir() + "/test.csv");
}
use of org.h2.tools.Csv in project h2database by h2database.
the class Railroads method process.
private void process() throws Exception {
RailroadImages.main();
bnf = Bnf.getInstance(getReader());
Csv csv = new Csv();
csv.setLineCommentCharacter('#');
ResultSet rs = csv.read(getReader(), null);
map("grammar", rs, true);
processHtml("jcr-sql2.html");
}
use of org.h2.tools.Csv in project h2database by h2database.
the class CsvSample method read.
/**
* Read a CSV file.
*/
static void read() throws SQLException {
ResultSet rs = new Csv().read("data/test.csv", null, null);
ResultSetMetaData meta = rs.getMetaData();
while (rs.next()) {
for (int i = 0; i < meta.getColumnCount(); i++) {
System.out.println(meta.getColumnLabel(i + 1) + ": " + rs.getString(i + 1));
}
System.out.println();
}
rs.close();
}
Aggregations