protected static HashMap<String, String> readTwoColumnTable(String resourceName) { final InputStream stream = SeadasProductReader.class.getResourceAsStream(resourceName); if (stream != null) { try { HashMap<String, String> validExpressionMap = new HashMap<String, String>(32); final CsvReader csvReader = new CsvReader(new InputStreamReader(stream), new char[]{';'}); final List<String[]> table = csvReader.readStringRecords(); for (String[] strings : table) { if (strings.length == 2) { validExpressionMap.put(strings[0], strings[1]); } } return validExpressionMap; } catch (IOException e) { // ? } finally { try { stream.close(); } catch (IOException e) { // ok } } } return new HashMap<String, String>(0); }
@SuppressWarnings("unchecked") private static Map<String, ScanLineLayout> readScanLineLayoutMap() throws IOException { final InputStream inputStream = ChrisFile.class.getResourceAsStream("scanLineLayout.csv"); final InputStreamReader inputStreamReader = new InputStreamReader(inputStream); final CsvReader csvReader = new CsvReader(inputStreamReader, new char[]{','}, true, "#"); try { final List<String[]> recordList = csvReader.readStringRecords(); final Map<String, ScanLineLayout> scanLineLayoutMap = new HashMap<String, ScanLineLayout>( recordList.size()); for (final String[] record : recordList) { final int leadingPixelCount = Integer.parseInt(record[1]); final int imagePixelCount = Integer.parseInt(record[2]); final int trailingPixelCount = Integer.parseInt(record[3]); scanLineLayoutMap.put(record[0], new ScanLineLayout(leadingPixelCount, imagePixelCount, trailingPixelCount)); } return scanLineLayoutMap; } finally { try { csvReader.close(); } catch (IOException ignored) { // ignore } } } }
@Test public void testReadAllRecords() throws IOException { CsvReader reader = createReader(CSV_DATA, '|'); List<String[]> records = reader.readStringRecords(); assertEquals(EXPECTED_RECORDS.length, records.size()); for (int i = 0; i < records.size(); i++) { assertArrayEquals(EXPECTED_RECORDS[i], records.get(i)); } }
@Test public void testSpaceSeparator() throws Exception { CsvReader reader = createReader(" a b c\nd \n i", ' '); List<String[]> records = reader.readStringRecords(); assertEquals(3, records.size()); assertArrayEquals(new String[]{"a", "b", "c"}, records.get(0)); assertArrayEquals(new String[]{"d"}, records.get(1)); assertArrayEquals(new String[]{"i"}, records.get(2)); }
@Test public void testTabSeparator() throws Exception { CsvReader reader = createReader("a\tb\tc\nd\t\t\n\t\ti", '\t'); List<String[]> records = reader.readStringRecords(); assertEquals(3, records.size()); assertArrayEquals(new String[]{"a", "b", "c"}, records.get(0)); assertArrayEquals(new String[]{"d", "", ""}, records.get(1)); assertArrayEquals(new String[]{"", "", "i"}, records.get(2)); }
@Test public void testMultipleSeparators() throws Exception { CsvReader reader = createReader("a$b|c\nd$$\n|$i", '|', '$'); List<String[]> records = reader.readStringRecords(); assertEquals(3, records.size()); assertArrayEquals(new String[]{"a", "b", "c"}, records.get(0)); assertArrayEquals(new String[]{"d", "", ""}, records.get(1)); assertArrayEquals(new String[]{"", "", "i"}, records.get(2)); }
@Test public void testSemicolonSeparator() throws Exception { CsvReader reader = createReader("a; b;c\nd;;\n;; i \n", ';'); List<String[]> records = reader.readStringRecords(); assertEquals(3, records.size()); assertArrayEquals(new String[]{"a", "b", "c"}, records.get(0)); assertArrayEquals(new String[]{"d", "", ""}, records.get(1)); assertArrayEquals(new String[]{"", "", "i"}, records.get(2)); }
@Test public void testWhitespaceSeparatorsIgnoringEmptyLinesAndComments() throws Exception { String csv = "\n// Holla!\n \t \n a\tb c\n\nd \n\t i \n\n\n"; CsvReader reader = createReader(csv, true, "//", '\t', ' '); List<String[]> records = reader.readStringRecords(); assertEquals(3, records.size()); assertArrayEquals(new String[]{"a", "b", "c"}, records.get(0)); assertArrayEquals(new String[]{"d"}, records.get(1)); assertArrayEquals(new String[]{"i"}, records.get(2)); }
@Test public void testWhitespaceSeparatorsIgnoringEmptyLines() throws Exception { String csv = "\n// Holla!\n \t \n a\tb c\n\nd \n\t i \n\n\n"; CsvReader reader = createReader(csv, true, null, '\t', ' '); List<String[]> records = reader.readStringRecords(); assertEquals(4, records.size()); assertArrayEquals(new String[]{"//", "Holla!"}, records.get(0)); assertArrayEquals(new String[]{"a", "b", "c"}, records.get(1)); assertArrayEquals(new String[]{"d"}, records.get(2)); assertArrayEquals(new String[]{"i"}, records.get(3)); }
@Test public void testWhitespaceSeparatorIgnoringComments() throws Exception { String csv = "\n// Holla!\n \t \n a\tb c\n\nd \n\t i \n\n\n"; CsvReader reader = createReader(csv, false, "//", '\t', ' '); List<String[]> records = reader.readStringRecords(); assertEquals(8, records.size()); assertArrayEquals(new String[]{}, records.get(0)); assertArrayEquals(new String[]{}, records.get(1)); assertArrayEquals(new String[]{"a", "b", "c"}, records.get(2)); assertArrayEquals(new String[]{}, records.get(3)); assertArrayEquals(new String[]{"d"}, records.get(4)); assertArrayEquals(new String[]{"i"}, records.get(5)); assertArrayEquals(new String[]{}, records.get(6)); assertArrayEquals(new String[]{}, records.get(7)); }
@Test public void testWhitespaceSeparators() throws Exception { String csv = "\n// Holla!\n \t \n a\tb c\n\nd \n\t i \n\n\n"; CsvReader reader = createReader(csv, false, null, '\t', ' '); List<String[]> records = reader.readStringRecords(); assertEquals(9, records.size()); assertArrayEquals(new String[]{}, records.get(0)); assertArrayEquals(new String[]{"//", "Holla!"}, records.get(1)); assertArrayEquals(new String[]{}, records.get(2)); assertArrayEquals(new String[]{"a", "b", "c"}, records.get(3)); assertArrayEquals(new String[]{}, records.get(4)); assertArrayEquals(new String[]{"d"}, records.get(5)); assertArrayEquals(new String[]{"i"}, records.get(6)); assertArrayEquals(new String[]{}, records.get(7)); assertArrayEquals(new String[]{}, records.get(8)); }
private static void existsInFile(String[] expectedValues, String resourcePath) throws IOException { CsvReader csvReader = new CsvReader(createLineReader(resourcePath), new char[]{'|'}, true, "#"); List<String[]> recordSet = csvReader.readStringRecords(); try { for (String expectedValue : expectedValues) { assertTrue("expected '" + expectedValue + "' in " + resourcePath, existsInRecordSet(expectedValue, recordSet, 0)); } } finally { csvReader.close(); } }