Skip to content

Commit 583969b

Browse files
amdegregoriopivovarit
authored andcommitted
BAEL-2499 Write to CSV in Java - Updated PR (eugenp#6122)
* example code for Article How to Write to a CSV File in Java * Updated to use a Stream
1 parent 36e4892 commit 583969b

File tree

2 files changed

+9
-18
lines changed

2 files changed

+9
-18
lines changed

core-java-io/src/main/java/com/baeldung/csv/WriteCsvFileExample.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
package com.baeldung.csv;
22

3-
import java.io.BufferedWriter;
4-
import java.io.IOException;
5-
63
public class WriteCsvFileExample {
74

8-
public void writeLine(BufferedWriter writer, String[] data) throws IOException {
5+
public String convertToCSV(String[] data) {
96
StringBuilder csvLine = new StringBuilder();
107

118
for (int i = 0; i < data.length; i++) {
@@ -15,7 +12,7 @@ public void writeLine(BufferedWriter writer, String[] data) throws IOException {
1512
csvLine.append(escapeSpecialCharacters(data[i]));
1613
}
1714

18-
writer.write(csvLine.toString());
15+
return csvLine.toString();
1916
}
2017

2118
public String escapeSpecialCharacters(String data) {

core-java-io/src/test/java/com/baeldung/csv/WriteCsvFileExampleUnitTest.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@
33
import static org.junit.Assert.assertEquals;
44
import static org.junit.Assert.assertTrue;
55

6-
import java.io.BufferedWriter;
76
import java.io.File;
8-
import java.io.FileWriter;
9-
import java.io.IOException;
7+
import java.io.FileNotFoundException;
8+
import java.io.PrintWriter;
109
import java.util.ArrayList;
11-
import java.util.Iterator;
1210
import java.util.List;
1311

1412
import org.junit.Before;
@@ -73,15 +71,11 @@ public void givenBufferedWriter_whenWriteLine_thenOutputCreated() {
7371
dataLines.add(new String[] { "Jane", "Doe, Jr.", "19", "She said \"I'm being quoted\"" });
7472

7573
File csvOutputFile = new File(CSV_FILE_NAME);
76-
try (BufferedWriter writer = new BufferedWriter(new FileWriter(csvOutputFile))) {
77-
for (Iterator<String[]> dataIterator = dataLines.iterator(); dataIterator.hasNext();) {
78-
csvExample.writeLine(writer, dataIterator.next());
79-
if (dataIterator.hasNext()) {
80-
writer.newLine();
81-
}
82-
}
83-
writer.flush();
84-
} catch (IOException e) {
74+
try (PrintWriter pw = new PrintWriter(csvOutputFile)) {
75+
dataLines.stream()
76+
.map(csvExample::convertToCSV)
77+
.forEach(pw::println);
78+
} catch (FileNotFoundException e) {
8579
LOG.error("IOException " + e.getMessage());
8680
}
8781

0 commit comments

Comments
 (0)