From 002849402c53bb00831c3a6d7f446d25698d25a5 Mon Sep 17 00:00:00 2001
From: Christopher Bohn <bohn@unl.edu>
Date: Sun, 19 Jan 2020 08:15:28 -0600
Subject: [PATCH] placeCSVonStream() now correctly leaves content on the stream

---
 src/main/java/edu/unl/cse/csv_io/CSVReaderWriter.java | 11 ++++++-----
 .../java/edu/unl/cse/csv_io/CSVReaderWriterTest.java  |  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/main/java/edu/unl/cse/csv_io/CSVReaderWriter.java b/src/main/java/edu/unl/cse/csv_io/CSVReaderWriter.java
index 09167d0..4f42ddf 100644
--- a/src/main/java/edu/unl/cse/csv_io/CSVReaderWriter.java
+++ b/src/main/java/edu/unl/cse/csv_io/CSVReaderWriter.java
@@ -1,13 +1,12 @@
 /*
- * CSV Reader/Writer, copyright (c) 2019 Christopher A. Bohn, bohn@unl.edu.
+ * CSV Reader/Writer, copyright (c) 2019-2020 Christopher A. Bohn, bohn@unl.edu.
  */
 
 package edu.unl.cse.csv_io;
 
 import com.opencsv.CSVReaderHeaderAware;
 import com.opencsv.CSVReaderHeaderAwareBuilder;
-import com.opencsv.CSVWriterBuilder;
-import com.opencsv.ICSVWriter;
+import com.opencsv.CSVWriter;
 import com.opencsv.exceptions.CsvValidationException;
 
 import java.io.*;
@@ -86,8 +85,9 @@ public class CSVReaderWriter {
         return wroteFile;
     }
 
-    static void placeCSVonStream(Collection<Map<String, String>> data, OutputStream outputStream) {
-        ICSVWriter csvWriter = new CSVWriterBuilder(new OutputStreamWriter(outputStream)).build();
+    static void placeCSVonStream(Collection<Map<String, String>> data, OutputStream outputStream) throws IOException {
+        OutputStreamWriter writer = new OutputStreamWriter(outputStream);
+        CSVWriter csvWriter = new CSVWriter(writer);
         List<String[]> allLines = new LinkedList<>();
         String[] fieldNames = getFieldNames(data);
         int number_of_fields = fieldNames.length;
@@ -102,6 +102,7 @@ public class CSVReaderWriter {
             allLines.add(values);
         }
         csvWriter.writeAll(allLines, false);
+        writer.close();
     }
 
     private static String[] getFieldNames(Collection<Map<String, String>> data) {
diff --git a/src/test/java/edu/unl/cse/csv_io/CSVReaderWriterTest.java b/src/test/java/edu/unl/cse/csv_io/CSVReaderWriterTest.java
index 3e6d78f..693c460 100644
--- a/src/test/java/edu/unl/cse/csv_io/CSVReaderWriterTest.java
+++ b/src/test/java/edu/unl/cse/csv_io/CSVReaderWriterTest.java
@@ -128,7 +128,7 @@ public class CSVReaderWriterTest {
     // We probably should test malformed CSVs, but this is good enough for students' starter code
 
     @Test
-    public void testWriting2x3CSV() {
+    public void testWriting2x3CSV() throws IOException {
         // Input
         String[] headers = {"header1", "header2"};
         String[][] rows = {{"datum1", "datum2"}, {"datum3", "datum4"}};
-- 
GitLab