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

View File

@ -1,11 +1,11 @@
package com.baeldung.bufferedreader;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
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;
@ -13,23 +13,6 @@ public class BufferedReaderExampleUnitTest {
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
public void givenBufferedReader_whenReadAllLines_thenReturnsContent() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME));
@ -42,22 +25,22 @@ public class BufferedReaderExampleUnitTest {
}
@Test
public void givenBufferedReader_whenReadAllLines2_thenReturnsContent() throws IOException {
public void givenBufferedReader_whenReadAllLinesWithStream_thenReturnsContent() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME));
BufferedReaderExample bre = new BufferedReaderExample();
String content = bre.readAllLines2(reader);
String content = bre.readAllLinesWithStream(reader);
assertThat(content).isNotEmpty();
assertThat(content).contains("Lorem ipsum");
}
@Test
public void whenReadFile_thenOutputsContent() {
public void whenReadFile_thenReturnsContent() {
BufferedReaderExample bre = new BufferedReaderExample();
bre.readFile();
String content = bre.readFile();
assertThat(outContent.toString()).contains("Lorem ipsum");
assertThat(content.toString()).contains("Lorem ipsum");
}
@Test
@ -72,11 +55,11 @@ public class BufferedReaderExampleUnitTest {
}
@Test
public void givenBufferedReader_whenReadAllCharacter2_thenReturnsContent() throws IOException {
public void givenBufferedReader_whenReadAllCharactersUsingArray_thenReturnsContent() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME));
BufferedReaderExample bre = new BufferedReaderExample();
String content = bre.readAllCharacters2(reader);
String content = bre.readAllCharactersUsingArray(reader);
assertThat(content).isNotEmpty();
assertThat(content).contains("Lorem ipsum");
@ -94,22 +77,22 @@ public class BufferedReaderExampleUnitTest {
}
@Test
public void givenBufferedReader_whenMarkAndReset_thenOutputsRepeatedContent() throws IOException {
public void givenBufferedReader_whenMarkAndReset_thenReturnsRepeatedContent() throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME));
BufferedReaderExample bre = new BufferedReaderExample();
bre.markAndReset(reader);
String content = bre.markAndReset(reader);
assertThat(outContent.toString()).isNotEmpty();
assertThat(StringUtils.countOccurrencesOf(outContent.toString(), "Lorem ipsum")).isEqualTo(3);
assertThat(content.toString()).isNotEmpty();
assertThat(StringUtils.countOccurrencesOf(content.toString(), "Lorem ipsum")).isEqualTo(3);
}
@Test
public void whenReadFileTryWithResources_thenOutputsContent() {
public void whenReadFileTryWithResources_thenReturnsContent() {
BufferedReaderExample bre = new BufferedReaderExample();
bre.readFileTryWithResources();
String content = bre.readFileTryWithResources();
assertThat(outContent.toString()).contains("Lorem ipsum");
assertThat(content.toString()).contains("Lorem ipsum");
}
}