Skip to content

Commit faefaa5

Browse files
author
eugenp
committed
java IO testing work
1 parent 458db43 commit faefaa5

File tree

2 files changed

+103
-63
lines changed

2 files changed

+103
-63
lines changed
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package org.baeldung.java;
2+
3+
import java.io.File;
4+
import java.io.FileInputStream;
5+
import java.io.IOException;
6+
import java.util.Scanner;
7+
8+
import org.apache.commons.io.FileUtils;
9+
import org.junit.Test;
10+
import org.slf4j.Logger;
11+
import org.slf4j.LoggerFactory;
12+
13+
import com.google.common.base.Charsets;
14+
import com.google.common.io.Files;
15+
16+
public class CoreJavaIoIntegrationTest {
17+
protected final Logger logger = LoggerFactory.getLogger(getClass());
18+
19+
// tests - iterate lines in a file
20+
21+
@Test
22+
public final void givenUsingGuava_whenIteratingAFile_thenCorrect() throws IOException {
23+
final String path = "G:\\full\\train\\input\\" + "trainDataNegative.csv";
24+
// final String path = "G:\\full\\train\\input\\" + "trainDataPositive.csv";
25+
26+
logMemory();
27+
Files.readLines(new File(path), Charsets.UTF_8);
28+
logMemory();
29+
}
30+
31+
@Test
32+
public final void givenUsingCommonsIo_whenIteratingAFile_thenCorrect() throws IOException {
33+
final String path = "G:\\full\\train\\input\\" + "trainDataNegative.csv";
34+
// final String path = "G:\\full\\train\\input\\" + "trainDataPositive.csv";
35+
36+
logMemory();
37+
FileUtils.readLines(new File(path));
38+
logMemory();
39+
}
40+
41+
@Test
42+
public final void whenStreamingThroughAFile_thenCorrect() throws IOException {
43+
final String path = "G:\\full\\train\\input\\" + "trainDataNegative.csv";
44+
// final String path = "G:\\full\\train\\input\\" + "trainDataPositive.csv";
45+
46+
logMemory();
47+
48+
FileInputStream inputStream = null;
49+
Scanner sc = null;
50+
try {
51+
inputStream = new FileInputStream(path);
52+
sc = new Scanner(inputStream, "UTF-8");
53+
while (sc.hasNextLine()) {
54+
final String line = sc.nextLine();
55+
// System.out.println(line);
56+
}
57+
// note that Scanner suppresses exceptions
58+
if (sc.ioException() != null) {
59+
throw sc.ioException();
60+
}
61+
} finally {
62+
if (inputStream != null) {
63+
inputStream.close();
64+
}
65+
if (sc != null) {
66+
sc.close();
67+
}
68+
}
69+
70+
logMemory();
71+
}
72+
73+
// utils
74+
75+
private final void logMemory() {
76+
logger.info("Max Memory: {} Mb", Runtime.getRuntime().maxMemory() / 1048576);
77+
logger.info("Total Memory: {} Mb", Runtime.getRuntime().totalMemory() / 1048576);
78+
logger.info("Free Memory: {} Mb", Runtime.getRuntime().freeMemory() / 1048576);
79+
}
80+
81+
}

core-java/src/test/java/org/baeldung/java/CoreJavaIoUnitTest.java

Lines changed: 22 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -5,83 +5,27 @@
55
import static org.junit.Assert.assertThat;
66

77
import java.io.ByteArrayInputStream;
8-
import java.io.File;
9-
import java.io.FileInputStream;
108
import java.io.IOException;
119
import java.io.InputStream;
1210
import java.io.Reader;
1311
import java.io.StringReader;
12+
import java.io.StringWriter;
1413
import java.nio.charset.StandardCharsets;
1514
import java.util.Scanner;
1615

17-
import org.apache.commons.io.FileUtils;
16+
import org.apache.commons.io.IOUtils;
1817
import org.junit.Test;
1918
import org.slf4j.Logger;
2019
import org.slf4j.LoggerFactory;
2120

2221
import com.google.common.base.Charsets;
2322
import com.google.common.io.ByteSource;
2423
import com.google.common.io.CharStreams;
25-
import com.google.common.io.Files;
2624
import com.google.common.io.InputSupplier;
2725

2826
public class CoreJavaIoUnitTest {
2927
protected final Logger logger = LoggerFactory.getLogger(getClass());
3028

31-
// tests - iterate lines in a file
32-
33-
@Test
34-
public final void givenUsingGuava_whenIteratingAFile_thenCorrect() throws IOException {
35-
final String path = "G:\\full\\train\\input\\" + "trainDataNegative.csv";
36-
// final String path = "G:\\full\\train\\input\\" + "trainDataPositive.csv";
37-
38-
logMemory();
39-
Files.readLines(new File(path), Charsets.UTF_8);
40-
logMemory();
41-
}
42-
43-
@Test
44-
public final void givenUsingCommonsIo_whenIteratingAFile_thenCorrect() throws IOException {
45-
final String path = "G:\\full\\train\\input\\" + "trainDataNegative.csv";
46-
// final String path = "G:\\full\\train\\input\\" + "trainDataPositive.csv";
47-
48-
logMemory();
49-
FileUtils.readLines(new File(path));
50-
logMemory();
51-
}
52-
53-
@Test
54-
public final void whenStreamingThroughAFile_thenCorrect() throws IOException {
55-
final String path = "G:\\full\\train\\input\\" + "trainDataNegative.csv";
56-
// final String path = "G:\\full\\train\\input\\" + "trainDataPositive.csv";
57-
58-
logMemory();
59-
60-
FileInputStream inputStream = null;
61-
Scanner sc = null;
62-
try {
63-
inputStream = new FileInputStream(path);
64-
sc = new Scanner(inputStream, "UTF-8");
65-
while (sc.hasNextLine()) {
66-
final String line = sc.nextLine();
67-
// System.out.println(line);
68-
}
69-
// note that Scanner suppresses exceptions
70-
if (sc.ioException() != null) {
71-
throw sc.ioException();
72-
}
73-
} finally {
74-
if (inputStream != null) {
75-
inputStream.close();
76-
}
77-
if (sc != null) {
78-
sc.close();
79-
}
80-
}
81-
82-
logMemory();
83-
}
84-
8529
// tests - InputStream to String
8630

8731
@Test
@@ -120,12 +64,27 @@ public final void givenUsingGuavaWithEncoding_whenConvertingAnInputStreamToAStri
12064
assertThat(text, equalTo(originalString));
12165
}
12266

123-
// utils
67+
@Test
68+
public final void givenUsingCommonsIoWithEncoding_whenConvertingAnInputStreamToAString_thenCorrect() throws IOException {
69+
final String originalString = randomAlphabetic(8);
70+
final InputStream inputStream = new ByteArrayInputStream(originalString.getBytes());
71+
72+
// When
73+
final String text = IOUtils.toString(inputStream, StandardCharsets.UTF_8.name());
74+
assertThat(text, equalTo(originalString));
75+
}
76+
77+
@Test
78+
public final void givenUsingCommonsIoWithEncoding2_whenConvertingAnInputStreamToAString_thenCorrect() throws IOException {
79+
final String originalString = randomAlphabetic(8);
80+
final InputStream inputStream = new ByteArrayInputStream(originalString.getBytes());
81+
82+
// When
83+
final StringWriter writer = new StringWriter();
84+
final String encoding = StandardCharsets.UTF_8.name();
85+
IOUtils.copy(inputStream, writer, encoding);
12486

125-
private final void logMemory() {
126-
logger.info("Max Memory: {} Mb", Runtime.getRuntime().maxMemory() / 1048576);
127-
logger.info("Total Memory: {} Mb", Runtime.getRuntime().totalMemory() / 1048576);
128-
logger.info("Free Memory: {} Mb", Runtime.getRuntime().freeMemory() / 1048576);
87+
assertThat(writer.toString(), equalTo(originalString));
12988
}
13089

13190
}

0 commit comments

Comments
 (0)