[BAEL-2255] - apply requested changes from code review

This commit is contained in:
markoprevisic 2018-10-17 20:05:21 +02:00
parent dc5640c86b
commit 67cfde81f3
2 changed files with 34 additions and 50 deletions

View File

@ -3,7 +3,6 @@ package com.baeldung.bufferedreader;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays;
public class BufferedReaderExample { public class BufferedReaderExample {
@ -19,7 +18,7 @@ public class BufferedReaderExample {
return content.toString(); return content.toString();
} }
public String readAllLines2(BufferedReader reader) { public String readAllLinesWithStream(BufferedReader reader) {
StringBuilder content = new StringBuilder(); StringBuilder content = new StringBuilder();
reader.lines() reader.lines()
.forEach(line -> content.append(line) .forEach(line -> content.append(line)
@ -38,18 +37,14 @@ public class BufferedReaderExample {
return content.toString(); return content.toString();
} }
public String readAllCharacters2(BufferedReader reader) throws IOException { public String readAllCharactersUsingArray(BufferedReader reader) throws IOException {
StringBuilder content = new StringBuilder(); StringBuilder content = new StringBuilder();
String title = "text: "; char[] buf = new char[512];
char[] buf = Arrays.copyOf(title.toCharArray(), 512);
int offset = title.length();
int charsRead; int charsRead;
while ((charsRead = reader.read(buf, offset, buf.length - offset)) != -1) { while ((charsRead = reader.read(buf, 0, buf.length)) != -1) {
content.append(buf, 0, offset + charsRead); content.append(buf, 0, charsRead);
content.append(" --- ");
} }
return content.toString(); return content.toString();
@ -67,24 +62,29 @@ public class BufferedReaderExample {
return content.toString(); return content.toString();
} }
public void markAndReset(BufferedReader reader) throws IOException { public String markAndReset(BufferedReader reader) throws IOException {
StringBuilder content = new StringBuilder();
reader.mark(512); reader.mark(512);
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
System.out.println(reader.readLine()); content.append(reader.readLine());
reader.reset(); reader.reset();
reader.mark(512); reader.mark(512);
} }
return content.toString();
} }
public void readFile() { public String readFile() {
BufferedReader reader = null; BufferedReader reader = null;
try { try {
reader = new BufferedReader(new FileReader("src/main/resources/input.txt")); reader = new BufferedReader(new FileReader("src/main/resources/input.txt"));
String content = readAllLines(reader); String content = readAllLines(reader);
System.out.println(content); return content;
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
return null;
} finally { } finally {
try { try {
if (reader != null) { if (reader != null) {
@ -96,12 +96,13 @@ public class BufferedReaderExample {
} }
} }
public void readFileTryWithResources() { public String readFileTryWithResources() {
try (BufferedReader reader = new BufferedReader(new FileReader("src/main/resources/input.txt"))) { try (BufferedReader reader = new BufferedReader(new FileReader("src/main/resources/input.txt"))) {
String content = readAllLines(reader); String content = readAllLines(reader);
System.out.println(content); return content;
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
return null;
} }
} }

View File

@ -1,11 +1,11 @@
package com.baeldung.bufferedreader; package com.baeldung.bufferedreader;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.io.*; import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
@ -13,23 +13,6 @@ public class BufferedReaderExampleUnitTest {
public static final String FILE_NAME = "src/main/resources/input.txt"; public static final String FILE_NAME = "src/main/resources/input.txt";
private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
private final ByteArrayOutputStream errContent = new ByteArrayOutputStream();
private final PrintStream originalOut = System.out;
private final PrintStream originalErr = System.err;
@Before
public void setup() {
System.setOut(new PrintStream(outContent));
System.setErr(new PrintStream(errContent));
}
@After
public void restore() {
System.setOut(originalOut);
System.setErr(originalErr);
}
@Test @Test
public void givenBufferedReader_whenReadAllLines_thenReturnsContent() throws IOException { public void givenBufferedReader_whenReadAllLines_thenReturnsContent() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME)); BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME));
@ -42,22 +25,22 @@ public class BufferedReaderExampleUnitTest {
} }
@Test @Test
public void givenBufferedReader_whenReadAllLines2_thenReturnsContent() throws IOException { public void givenBufferedReader_whenReadAllLinesWithStream_thenReturnsContent() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME)); BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME));
BufferedReaderExample bre = new BufferedReaderExample(); BufferedReaderExample bre = new BufferedReaderExample();
String content = bre.readAllLines2(reader); String content = bre.readAllLinesWithStream(reader);
assertThat(content).isNotEmpty(); assertThat(content).isNotEmpty();
assertThat(content).contains("Lorem ipsum"); assertThat(content).contains("Lorem ipsum");
} }
@Test @Test
public void whenReadFile_thenOutputsContent() { public void whenReadFile_thenReturnsContent() {
BufferedReaderExample bre = new BufferedReaderExample(); BufferedReaderExample bre = new BufferedReaderExample();
bre.readFile(); String content = bre.readFile();
assertThat(outContent.toString()).contains("Lorem ipsum"); assertThat(content.toString()).contains("Lorem ipsum");
} }
@Test @Test
@ -72,11 +55,11 @@ public class BufferedReaderExampleUnitTest {
} }
@Test @Test
public void givenBufferedReader_whenReadAllCharacter2_thenReturnsContent() throws IOException { public void givenBufferedReader_whenReadAllCharactersUsingArray_thenReturnsContent() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME)); BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME));
BufferedReaderExample bre = new BufferedReaderExample(); BufferedReaderExample bre = new BufferedReaderExample();
String content = bre.readAllCharacters2(reader); String content = bre.readAllCharactersUsingArray(reader);
assertThat(content).isNotEmpty(); assertThat(content).isNotEmpty();
assertThat(content).contains("Lorem ipsum"); assertThat(content).contains("Lorem ipsum");
@ -94,22 +77,22 @@ public class BufferedReaderExampleUnitTest {
} }
@Test @Test
public void givenBufferedReader_whenMarkAndReset_thenOutputsRepeatedContent() throws IOException { public void givenBufferedReader_whenMarkAndReset_thenReturnsRepeatedContent() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME)); BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME));
BufferedReaderExample bre = new BufferedReaderExample(); BufferedReaderExample bre = new BufferedReaderExample();
bre.markAndReset(reader); String content = bre.markAndReset(reader);
assertThat(outContent.toString()).isNotEmpty(); assertThat(content.toString()).isNotEmpty();
assertThat(StringUtils.countOccurrencesOf(outContent.toString(), "Lorem ipsum")).isEqualTo(3); assertThat(StringUtils.countOccurrencesOf(content.toString(), "Lorem ipsum")).isEqualTo(3);
} }
@Test @Test
public void whenReadFileTryWithResources_thenOutputsContent() { public void whenReadFileTryWithResources_thenReturnsContent() {
BufferedReaderExample bre = new BufferedReaderExample(); BufferedReaderExample bre = new BufferedReaderExample();
bre.readFileTryWithResources(); String content = bre.readFileTryWithResources();
assertThat(outContent.toString()).contains("Lorem ipsum"); assertThat(content.toString()).contains("Lorem ipsum");
} }
} }