@Override public boolean write(List<VariantAnnotation> variantAnnotationList) { try { sequenceWriter.writeAll(variantAnnotationList); } catch (IOException e) { throw new RuntimeException(e); } return true; }
/** * 序列化为JSON */ public static <V> void toFile(String path, List<V> list) { try (Writer writer = new FileWriter(new File(path), true)) { mapper.writer().writeValues(writer).writeAll(list); writer.flush(); } catch (Exception e) { log.error("jackson to file error, path: {}, list: {}", path, list, e); } }
/** * 序列化为CSV文件 */ public static <V> void toCsvFile(String path, String separator, List<V> list) { try (Writer writer = new FileWriter(new File(path), true)) { Class type = list.get(0).getClass(); CsvSchema schema = csvMapper.schemaFor(type).withHeader().withColumnSeparator(separator.charAt(0)); csvMapper.writer(schema).writeValues(writer).writeAll(list); writer.flush(); } catch (Exception e) { log.error("jackson to csv file error, path: {}, separator: {}, list: {}", path, separator, list, e); } }
@Test public final void testWriteEmptyAll() throws Exception { List<String> headers = Arrays.asList("TestHeader1"); StringWriter writer = new StringWriter(); final Writer writer1 = writer; CSVStream.newCSVWriter(writer1, headers).writeAll(Arrays.asList(Arrays.asList())); System.out.println(writer.toString()); assertEquals("TestHeader1\n", writer.toString()); }
@Test public final void testWriteSingleEmptyString() throws Exception { List<String> headers = Arrays.asList("TestHeader1"); StringWriter writer = new StringWriter(); final Writer writer1 = writer; CSVStream.newCSVWriter(writer1, headers).writeAll(Arrays.asList(Arrays.asList(""))); System.out.println(writer.toString()); assertEquals("TestHeader1\n\n", writer.toString()); AtomicBoolean headersGood = new AtomicBoolean(false); AtomicBoolean lineGood = new AtomicBoolean(false); CSVStream.parse(new StringReader(writer.toString()), h -> { if (headers.size() == 1 && headers.contains("TestHeader1")) { headersGood.set(true); } }, (h, l) -> { if (l.size() == 1 && l.contains("")) { lineGood.set(true); } return l; }, l -> { }); assertTrue("Headers were not recognised", headersGood.get()); assertTrue("Line was not recognised", lineGood.get()); }