这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
b91466d
Create book-2.csv
Deepak-Vohra Apr 25, 2025
63d1a0f
Create ReadCSVInArrayUnitTest2.java
Deepak-Vohra Apr 25, 2025
f80c9fd
Update ReadCSVInArrayUnitTest2.java
Deepak-Vohra Apr 25, 2025
e790c31
Update book-2.csv
Deepak-Vohra Apr 25, 2025
06f6c3a
Update ReadCSVInArrayUnitTest2.java
Deepak-Vohra Apr 25, 2025
57972f4
Create book-3.csv
Deepak-Vohra Apr 25, 2025
1247f41
Update book-3.csv
Deepak-Vohra Apr 25, 2025
9594df6
Update ReadCSVInArrayUnitTest2.java
Deepak-Vohra Apr 25, 2025
acd1eff
Delete core-java-modules/core-java-io-conversions/src/test/resources/…
Deepak-Vohra Apr 25, 2025
756914b
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
ac92cb7
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
67b8a38
Update ReadCSVInArrayUnitTest2.java
Deepak-Vohra Apr 25, 2025
6970d64
Update ReadCSVInArrayUnitTest2.java
Deepak-Vohra Apr 25, 2025
b7d87e1
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
7568ae1
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
2a74174
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
dc63faf
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
199401c
Delete core-java-modules/core-java-io-conversions/src/test/java/com/b…
Deepak-Vohra Apr 25, 2025
ea9cfe1
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
65eaa11
Rename book-2.csv to book2.csv
Deepak-Vohra Apr 25, 2025
c7902af
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
d4d0a33
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
1a6cefa
Update book2.csv
Deepak-Vohra Apr 25, 2025
981daab
Update book2.csv
Deepak-Vohra Apr 25, 2025
9753f5d
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
14d32eb
Update book2.csv
Deepak-Vohra Apr 25, 2025
096dda2
Update book2.csv
Deepak-Vohra Apr 25, 2025
4951567
Update book2.csv
Deepak-Vohra Apr 25, 2025
0314e8a
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
2b07581
Update book2.csv
Deepak-Vohra Apr 25, 2025
ddc6c42
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
8c56fae
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
87e5eac
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
6dec1a3
Create ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
77b3e0f
Update ReadCSVInArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
340e8bb
Update ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
730b95c
Update ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
1338077
Update ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra Apr 25, 2025
3066985
Update ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra Apr 26, 2025
d377aab
Update ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra Apr 26, 2025
50e0edf
Update pom.xml
Deepak-Vohra Apr 27, 2025
a561183
Update ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra Apr 27, 2025
94b9824
Create book3.csv
Deepak-Vohra Apr 27, 2025
2774f6c
Create ReadCSVWithCommaInValuesUsingOpenCSVIntoArrayUnitTest.java
Deepak-Vohra Apr 27, 2025
68c7bca
Update ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra Apr 27, 2025
353ca2b
Delete core-java-modules/core-java-io-conversions/src/test/java/com/b…
Deepak-Vohra Apr 27, 2025
ca6cbd1
Update ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra Apr 27, 2025
a561a01
Create ReadCSVWithCommaInValuesUsingOpenCSVIntoArrayUnitTest.java
Deepak-Vohra Apr 27, 2025
a22dda8
Update ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra Apr 27, 2025
1d11dbd
Delete core-java-modules/core-java-io-conversions/src/test/java/com/b…
Deepak-Vohra Apr 27, 2025
7c04254
Update ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra Apr 27, 2025
c471645
Update book2.csv
Deepak-Vohra May 1, 2025
fbc8be2
Update ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra May 1, 2025
899b52d
Update ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra May 1, 2025
1e874c7
Update ReadCSVWithCommaInValuesIntoArrayUnitTest.java
Deepak-Vohra May 1, 2025
c249e1d
Create CustomCSVParserUnitTest.java
Deepak-Vohra May 1, 2025
275e955
Update CustomCSVParserUnitTest.java
Deepak-Vohra May 1, 2025
ef8bf38
Update CustomCSVParserUnitTest.java
Deepak-Vohra May 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions core-java-modules/core-java-io-conversions/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
</build>

<properties>
<opencsv.version>5.8</opencsv.version>
<opencsv.version>5.9</opencsv.version>
</properties>

</project>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package com.baeldung.csv;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.junit.Assert;
import org.junit.Test;



public class CustomCSVParserUnitTest {
public static final String COMMA_DELIMITER = ",";

public static final String CSV_FILE = "src/test/resources/book3.csv";

public static final List<List<String>> EXPECTED_ARRAY = Collections.unmodifiableList(new ArrayList<List<String>>() {
{
add(new ArrayList<String>() {
{
add("Kom, Mary");
add("Unbreakable");
}
});
add(new ArrayList<String>() {
{
add("Isapuari, Kapil");
add("Farishta");
}
});
}
});

@Test
public void givenCSVFileWithCommaInValues_whenCustomCSVParser_thenContentsAsExpected() throws IOException {
List<List<String>> records = new ArrayList<List<String>>();
try (BufferedReader br = new BufferedReader(new FileReader(CSV_FILE))) {
String line = "";
while ((line = br.readLine()) != null) {
records.add(parseLine(line));
}
} catch (Exception e) {
e.printStackTrace();
}
for (int i = 0; i < EXPECTED_ARRAY.size(); i++) {
Assert.assertArrayEquals(EXPECTED_ARRAY.get(i)
.toArray(),
records.get(i)
.toArray());
}
}

private static List<String> parseLine(String line) {
List<String> values = new ArrayList<>();
boolean inQuotes = false;
StringBuilder currentValue = new StringBuilder();

for (char c : line.toCharArray()) {
if (c == '"') {
inQuotes = !inQuotes;
} else if (c == ',' && !inQuotes) {
values.add(currentValue.toString());
currentValue = new StringBuilder();
} else {
currentValue.append(c);
}
}
values.add(currentValue.toString());
return values;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public class ReadCSVInArrayUnitTest {
}
});


@Test
public void givenCSVFile_whenBufferedReader_thenContentsAsExpected() throws IOException {
List<List<String>> records = new ArrayList<List<String>>();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
package com.baeldung.csv;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import org.junit.Assert;
import org.junit.Test;

import com.opencsv.CSVReader;

public class ReadCSVWithCommaInValuesIntoArrayUnitTest {
public static final String COMMA_DELIMITER = "\\|";
public static final String CSV_FILE = "src/test/resources/book2.csv";
public static final String CSV_FILE_OpenCSV = "src/test/resources/book3.csv";

public static final List<List<String>> EXPECTED_ARRAY = Collections.unmodifiableList(new ArrayList<List<String>>() {
{
add(new ArrayList<String>() {
{
add("\"Kom, Mary\"");
add("Unbreakable");
}
});
add(new ArrayList<String>() {
{
add("\"Isapuari, Kapil\"");
add("Farishta");
}
});
}
});

public static final List<List<String>> EXPECTED_ARRAY_OpenCSV = Collections.unmodifiableList(new ArrayList<List<String>>() {
{
add(new ArrayList<String>() {
{
add("Kom, Mary");
add("Unbreakable");
}
});
add(new ArrayList<String>() {
{
add("Isapuari, Kapil");
add("Farishta");
}
});
}
});


@Test
public void givenCSVFileWithCommaInValues_whenOpencsv_thenContentsAsExpected() throws IOException {
List<List<String>> records = new ArrayList<List<String>>();
try (CSVReader csvReader = new CSVReader(new FileReader(CSV_FILE_OpenCSV));) {
String[] values = null;
while ((values = csvReader.readNext()) != null) {
records.add(Arrays.asList(values));
}
} catch (Exception e) {
e.printStackTrace();
}
for (int i = 0; i < EXPECTED_ARRAY_OpenCSV.size(); i++) {
Assert.assertArrayEquals(EXPECTED_ARRAY_OpenCSV.get(i)
.toArray(),
records.get(i)
.toArray());
}
}

@Test
public void givenCSVFileWithCommaInValues_whenBufferedReader_thenContentsAsExpected() throws IOException {
List<List<String>> records = new ArrayList<List<String>>();
try (BufferedReader br = new BufferedReader(new FileReader(CSV_FILE))) {
String line = "";
while ((line = br.readLine()) != null) {
String[] values = line.split(COMMA_DELIMITER);
records.add(Arrays.asList(values));
}
} catch (Exception e) {
e.printStackTrace();
}
for (int i = 0; i < EXPECTED_ARRAY.size(); i++) {
Assert.assertArrayEquals(EXPECTED_ARRAY.get(i)
.toArray(),
records.get(i)
.toArray());
}
}

@Test
public void givenCSVFileWithCommaInValues_whenScanner_thenContentsAsExpected() throws IOException {
List<List<String>> records = new ArrayList<List<String>>();
try (Scanner scanner = new Scanner(new File(CSV_FILE));) {
while (scanner.hasNextLine()) {
records.add(getRecordFromLine(scanner.nextLine()));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
for (int i = 0; i < EXPECTED_ARRAY.size(); i++) {
Assert.assertArrayEquals(EXPECTED_ARRAY.get(i)
.toArray(),
records.get(i)
.toArray());
}
}

private List<String> getRecordFromLine(String line) {
List<String> values = new ArrayList<String>();
try (Scanner rowScanner = new Scanner(line)) {
rowScanner.useDelimiter(COMMA_DELIMITER);
while (rowScanner.hasNext()) {
values.add(rowScanner.next());
}
}
return values;
}

@Test
public void givenCSVFileWithCommaInValues_whenUsingFilesReadAllLinesMethod_thenContentsAsExpected() throws IOException {
List<List<String>> records = Files.readAllLines(Paths.get(CSV_FILE))
.stream()
.map(line -> Arrays.asList(line.split(COMMA_DELIMITER)))
.collect(Collectors.toList());

for (int i = 0; i < EXPECTED_ARRAY.size(); i++) {
Assert.assertArrayEquals(EXPECTED_ARRAY.get(i)
.toArray(),
records.get(i)
.toArray());
}
}

@Test
public void givenCSVFileWithCommaInValues_whenUsingFilesNewBufferedReaderMethod_thenContentsAsExpected() throws IOException {
try (BufferedReader reader = Files.newBufferedReader(Paths.get(CSV_FILE))) {
List<List<String>> records = reader.lines()
.map(line -> Arrays.asList(line.split(COMMA_DELIMITER)))
.collect(Collectors.toList());

for (int i = 0; i < EXPECTED_ARRAY.size(); i++) {
Assert.assertArrayEquals(EXPECTED_ARRAY.get(i)
.toArray(),
records.get(i)
.toArray());
}
}
}

@Test
public void givenCSVFileWithCommaInValues_whenUsingFilesLinesMethod_thenContentsAsExpected() throws IOException {
try (Stream<String> lines = Files.lines(Paths.get(CSV_FILE))) {
List<List<String>> records = lines.map(line -> Arrays.asList(line.split(COMMA_DELIMITER)))
.collect(Collectors.toList());

for (int i = 0; i < EXPECTED_ARRAY.size(); i++) {
Assert.assertArrayEquals(EXPECTED_ARRAY.get(i)
.toArray(),
records.get(i)
.toArray());
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
"Kom, Mary"|Unbreakable
"Isapuari, Kapil"|Farishta
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
"Kom, Mary",Unbreakable
"Isapuari, Kapil",Farishta