diff --git a/modules/ruslan/src/main/java/com/hillel/elementary/javageeks/ruslanTask6/ReadInBUF.java b/modules/ruslan/src/main/java/com/hillel/elementary/javageeks/ruslanTask6/ReadInBUF.java new file mode 100644 index 0000000..e9d5ff7 --- /dev/null +++ b/modules/ruslan/src/main/java/com/hillel/elementary/javageeks/ruslanTask6/ReadInBUF.java @@ -0,0 +1,31 @@ +package com.hillel.elementary.javageeks.ruslanTask6; + +import java.io.*; + +public class ReadInBUF { + + public static void WorkWithFile (File file) throws IOException { + + BufferedReader br = new BufferedReader(new FileReader(file)); + String st; + StringBuilder builder = new StringBuilder(); + + while ((st = br.readLine()) != null) { + String[] arrStr = st.split(" "); + for (int i = 0; i < arrStr.length; i++) { + if (!arrStr[i].isEmpty()) { + builder.append(arrStr[i].substring(0, 1).toUpperCase() + arrStr[i].substring(1) + " "); + } + } + builder.append("\n"); + } + WriteFile(file.toString(), builder.toString()); + } + + public static void WriteFile(String FILENAME, String str) throws IOException { + + BufferedWriter writer = new BufferedWriter(new FileWriter(new File(FILENAME))); + writer.append(str); + writer.close(); + } +} \ No newline at end of file diff --git a/modules/ruslan/src/main/resources/Test b/modules/ruslan/src/main/resources/Test new file mode 100644 index 0000000..03b39c5 --- /dev/null +++ b/modules/ruslan/src/main/resources/Test @@ -0,0 +1,7 @@ +The Project Gutenberg eBook, The sea-wolf, by Jack London +This eBook is for the use of anyone anywhere at no cost and with +almost no restrictions whatsoever. You may copy it, give it away or +re-use it under the terms of the Project Gutenberg License included +with this eBook or online at www.gutenberg.org +Title: The sea-Wolf +Author: jack London \ No newline at end of file diff --git a/modules/ruslan/src/test/java/com/hillel/elementary/javageeks/ruslanTask6/ReadInBUFTest.java b/modules/ruslan/src/test/java/com/hillel/elementary/javageeks/ruslanTask6/ReadInBUFTest.java new file mode 100644 index 0000000..0e41800 --- /dev/null +++ b/modules/ruslan/src/test/java/com/hillel/elementary/javageeks/ruslanTask6/ReadInBUFTest.java @@ -0,0 +1,44 @@ +package com.hillel.elementary.javageeks.ruslanTask6; + +import java.net.URL; +import org.junit.jupiter.api.Test; +import static org.assertj.core.api.Assertions.assertThat; +import java.io.*; + +class ReadInBUFTest { + + @Test + public void shouldResultReadFromFile() throws IOException { + + //given + URL resource = ReadInBUF.class.getClassLoader().getResource("Test"); + String fileFrom = resource.getFile(); + File file = new File(fileFrom); + + ReadInBUF.WorkWithFile(file); + + String sCurrentLine = null; + try (BufferedReader br = new BufferedReader(new FileReader(fileFrom))) { + while ((sCurrentLine = br.readLine()) != null) { + String[] parts = sCurrentLine.split(" "); + + int random = (int) (Math.random() * parts.length); + + String lineOutput = ""; + String checkResult = null; + + if (sCurrentLine.length() > 0) { + char letter = parts[random].substring(0, 1).charAt(0); + if (letter >= 65 && letter <= 90) { + checkResult = "true"; + } else { + checkResult = "false"; + } + } + assertThat(checkResult).isEqualTo("true"); + } + } catch (IOException e) { + e.printStackTrace(); + } + } +} \ No newline at end of file