From faefaa5088d9a4bd2bed5e872132c50493e1d14e Mon Sep 17 00:00:00 2001 From: eugenp Date: Tue, 7 Jan 2014 11:33:39 +0200 Subject: [PATCH] java IO testing work --- .../java/CoreJavaIoIntegrationTest.java | 81 ++++++++++++++++++ .../org/baeldung/java/CoreJavaIoUnitTest.java | 85 +++++-------------- 2 files changed, 103 insertions(+), 63 deletions(-) create mode 100644 core-java/src/test/java/org/baeldung/java/CoreJavaIoIntegrationTest.java diff --git a/core-java/src/test/java/org/baeldung/java/CoreJavaIoIntegrationTest.java b/core-java/src/test/java/org/baeldung/java/CoreJavaIoIntegrationTest.java new file mode 100644 index 0000000000..f492ebf68f --- /dev/null +++ b/core-java/src/test/java/org/baeldung/java/CoreJavaIoIntegrationTest.java @@ -0,0 +1,81 @@ +package org.baeldung.java; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.Scanner; + +import org.apache.commons.io.FileUtils; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.base.Charsets; +import com.google.common.io.Files; + +public class CoreJavaIoIntegrationTest { + protected final Logger logger = LoggerFactory.getLogger(getClass()); + + // tests - iterate lines in a file + + @Test + public final void givenUsingGuava_whenIteratingAFile_thenCorrect() throws IOException { + final String path = "G:\\full\\train\\input\\" + "trainDataNegative.csv"; + // final String path = "G:\\full\\train\\input\\" + "trainDataPositive.csv"; + + logMemory(); + Files.readLines(new File(path), Charsets.UTF_8); + logMemory(); + } + + @Test + public final void givenUsingCommonsIo_whenIteratingAFile_thenCorrect() throws IOException { + final String path = "G:\\full\\train\\input\\" + "trainDataNegative.csv"; + // final String path = "G:\\full\\train\\input\\" + "trainDataPositive.csv"; + + logMemory(); + FileUtils.readLines(new File(path)); + logMemory(); + } + + @Test + public final void whenStreamingThroughAFile_thenCorrect() throws IOException { + final String path = "G:\\full\\train\\input\\" + "trainDataNegative.csv"; + // final String path = "G:\\full\\train\\input\\" + "trainDataPositive.csv"; + + logMemory(); + + FileInputStream inputStream = null; + Scanner sc = null; + try { + inputStream = new FileInputStream(path); + sc = new Scanner(inputStream, "UTF-8"); + while (sc.hasNextLine()) { + final String line = sc.nextLine(); + // System.out.println(line); + } + // note that Scanner suppresses exceptions + if (sc.ioException() != null) { + throw sc.ioException(); + } + } finally { + if (inputStream != null) { + inputStream.close(); + } + if (sc != null) { + sc.close(); + } + } + + logMemory(); + } + + // utils + + private final void logMemory() { + logger.info("Max Memory: {} Mb", Runtime.getRuntime().maxMemory() / 1048576); + logger.info("Total Memory: {} Mb", Runtime.getRuntime().totalMemory() / 1048576); + logger.info("Free Memory: {} Mb", Runtime.getRuntime().freeMemory() / 1048576); + } + +} diff --git a/core-java/src/test/java/org/baeldung/java/CoreJavaIoUnitTest.java b/core-java/src/test/java/org/baeldung/java/CoreJavaIoUnitTest.java index 8d01ebefd8..1e2dbc6750 100644 --- a/core-java/src/test/java/org/baeldung/java/CoreJavaIoUnitTest.java +++ b/core-java/src/test/java/org/baeldung/java/CoreJavaIoUnitTest.java @@ -5,16 +5,15 @@ import static org.hamcrest.Matchers.equalTo; import static org.junit.Assert.assertThat; import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import java.io.StringReader; +import java.io.StringWriter; import java.nio.charset.StandardCharsets; import java.util.Scanner; -import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,66 +21,11 @@ import org.slf4j.LoggerFactory; import com.google.common.base.Charsets; import com.google.common.io.ByteSource; import com.google.common.io.CharStreams; -import com.google.common.io.Files; import com.google.common.io.InputSupplier; public class CoreJavaIoUnitTest { protected final Logger logger = LoggerFactory.getLogger(getClass()); - // tests - iterate lines in a file - - @Test - public final void givenUsingGuava_whenIteratingAFile_thenCorrect() throws IOException { - final String path = "G:\\full\\train\\input\\" + "trainDataNegative.csv"; - // final String path = "G:\\full\\train\\input\\" + "trainDataPositive.csv"; - - logMemory(); - Files.readLines(new File(path), Charsets.UTF_8); - logMemory(); - } - - @Test - public final void givenUsingCommonsIo_whenIteratingAFile_thenCorrect() throws IOException { - final String path = "G:\\full\\train\\input\\" + "trainDataNegative.csv"; - // final String path = "G:\\full\\train\\input\\" + "trainDataPositive.csv"; - - logMemory(); - FileUtils.readLines(new File(path)); - logMemory(); - } - - @Test - public final void whenStreamingThroughAFile_thenCorrect() throws IOException { - final String path = "G:\\full\\train\\input\\" + "trainDataNegative.csv"; - // final String path = "G:\\full\\train\\input\\" + "trainDataPositive.csv"; - - logMemory(); - - FileInputStream inputStream = null; - Scanner sc = null; - try { - inputStream = new FileInputStream(path); - sc = new Scanner(inputStream, "UTF-8"); - while (sc.hasNextLine()) { - final String line = sc.nextLine(); - // System.out.println(line); - } - // note that Scanner suppresses exceptions - if (sc.ioException() != null) { - throw sc.ioException(); - } - } finally { - if (inputStream != null) { - inputStream.close(); - } - if (sc != null) { - sc.close(); - } - } - - logMemory(); - } - // tests - InputStream to String @Test @@ -120,12 +64,27 @@ public class CoreJavaIoUnitTest { assertThat(text, equalTo(originalString)); } - // utils + @Test + public final void givenUsingCommonsIoWithEncoding_whenConvertingAnInputStreamToAString_thenCorrect() throws IOException { + final String originalString = randomAlphabetic(8); + final InputStream inputStream = new ByteArrayInputStream(originalString.getBytes()); - private final void logMemory() { - logger.info("Max Memory: {} Mb", Runtime.getRuntime().maxMemory() / 1048576); - logger.info("Total Memory: {} Mb", Runtime.getRuntime().totalMemory() / 1048576); - logger.info("Free Memory: {} Mb", Runtime.getRuntime().freeMemory() / 1048576); + // When + final String text = IOUtils.toString(inputStream, StandardCharsets.UTF_8.name()); + assertThat(text, equalTo(originalString)); + } + + @Test + public final void givenUsingCommonsIoWithEncoding2_whenConvertingAnInputStreamToAString_thenCorrect() throws IOException { + final String originalString = randomAlphabetic(8); + final InputStream inputStream = new ByteArrayInputStream(originalString.getBytes()); + + // When + final StringWriter writer = new StringWriter(); + final String encoding = StandardCharsets.UTF_8.name(); + IOUtils.copy(inputStream, writer, encoding); + + assertThat(writer.toString(), equalTo(originalString)); } }