diff --git a/src/main/java/com/examplehub/basics/io/BufferInputStreamExample.java b/src/main/java/com/examplehub/basics/io/BufferInputStreamExample.java new file mode 100644 index 00000000..43f466ba --- /dev/null +++ b/src/main/java/com/examplehub/basics/io/BufferInputStreamExample.java @@ -0,0 +1,4 @@ +package com.examplehub.basics.io; + +public class BufferInputStreamExample { +} diff --git a/src/main/java/com/examplehub/basics/io/BufferReaderExample.java b/src/main/java/com/examplehub/basics/io/BufferReaderExample.java new file mode 100644 index 00000000..5e330d06 --- /dev/null +++ b/src/main/java/com/examplehub/basics/io/BufferReaderExample.java @@ -0,0 +1,4 @@ +package com.examplehub.basics.io; + +public class BufferReaderExample { +} diff --git a/src/main/java/com/examplehub/basics/io/DataInputStreamExample.java b/src/main/java/com/examplehub/basics/io/DataInputStreamExample.java new file mode 100644 index 00000000..38a3ebe6 --- /dev/null +++ b/src/main/java/com/examplehub/basics/io/DataInputStreamExample.java @@ -0,0 +1,5 @@ +package com.examplehub.basics.io; + +public class DataInputStreamExample { + +} diff --git a/src/main/java/com/examplehub/basics/io/DataOutputStreamExample.java b/src/main/java/com/examplehub/basics/io/DataOutputStreamExample.java new file mode 100644 index 00000000..9d244c6b --- /dev/null +++ b/src/main/java/com/examplehub/basics/io/DataOutputStreamExample.java @@ -0,0 +1,4 @@ +package com.examplehub.basics.io; + +public class DataOutputStreamExample { +} diff --git a/src/main/java/com/examplehub/basics/io/PrintStreamExample.java b/src/main/java/com/examplehub/basics/io/PrintStreamExample.java new file mode 100644 index 00000000..b582373f --- /dev/null +++ b/src/main/java/com/examplehub/basics/io/PrintStreamExample.java @@ -0,0 +1,4 @@ +package com.examplehub.basics.io; + +public class PrintStreamExample { +} diff --git a/src/test/java/com/examplehub/basics/io/BufferInputStreamExampleTest.java b/src/test/java/com/examplehub/basics/io/BufferInputStreamExampleTest.java new file mode 100644 index 00000000..a31b0470 --- /dev/null +++ b/src/test/java/com/examplehub/basics/io/BufferInputStreamExampleTest.java @@ -0,0 +1,28 @@ +package com.examplehub.basics.io; + +import org.junit.jupiter.api.Test; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; + +import static org.junit.jupiter.api.Assertions.*; + +class BufferInputStreamExampleTest { + @Test + void testCopyFile() throws IOException { + String filename = "pom.xml"; + String newFileName = "pom_bk.xml"; + try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(filename)); + BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFileName))) { + byte[] buffer = new byte[1024]; + int readBytes; + while ((readBytes = bis.read(buffer)) != -1) { + bos.write(buffer, 0, readBytes); + bos.flush(); + } + assertEquals(new File(filename).length(), new File(newFileName).length()); + } + assertTrue(Files.deleteIfExists(Paths.get(newFileName))); + } +} \ No newline at end of file diff --git a/src/test/java/com/examplehub/basics/io/BufferReaderExampleTest.java b/src/test/java/com/examplehub/basics/io/BufferReaderExampleTest.java new file mode 100644 index 00000000..c37e373f --- /dev/null +++ b/src/test/java/com/examplehub/basics/io/BufferReaderExampleTest.java @@ -0,0 +1,32 @@ +package com.examplehub.basics.io; + +import org.junit.jupiter.api.Test; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; + +import static org.junit.jupiter.api.Assertions.*; + +class BufferReaderExampleTest { + @Test + void testCopyFile() throws IOException { + String filename = "pom.xml"; + String newFileName = "pom_bk.xml"; + try (BufferedReader bufferedReader = new BufferedReader(new FileReader(filename)); + BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(newFileName))) { + String line = bufferedReader.readLine(); + while (line != null) { + String nextLine = bufferedReader.readLine(); + bufferedWriter.write(line); + if (nextLine != null) { + bufferedWriter.write(System.lineSeparator()); + } + bufferedWriter.flush(); + line = nextLine; + } + assertEquals(new File(filename).length(), new File(newFileName).length()); + } + assertTrue(Files.deleteIfExists(Paths.get(newFileName))); + } +} \ No newline at end of file diff --git a/src/test/java/com/examplehub/basics/io/CreateFolderTest.java b/src/test/java/com/examplehub/basics/io/CreateFolderTest.java index f998cee1..6252118b 100644 --- a/src/test/java/com/examplehub/basics/io/CreateFolderTest.java +++ b/src/test/java/com/examplehub/basics/io/CreateFolderTest.java @@ -2,6 +2,9 @@ import static org.junit.jupiter.api.Assertions.*; + +import com.examplehub.basics.io.CreateFolder; + import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/examplehub/basics/io/DataInputStreamExampleTest.java b/src/test/java/com/examplehub/basics/io/DataInputStreamExampleTest.java new file mode 100644 index 00000000..4405a75f --- /dev/null +++ b/src/test/java/com/examplehub/basics/io/DataInputStreamExampleTest.java @@ -0,0 +1,24 @@ +package com.examplehub.basics.io; + +import org.junit.jupiter.api.Test; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; + +import static org.junit.jupiter.api.Assertions.*; + +class DataInputStreamExampleTest { + @Test + void testRead() throws IOException { + String filename = "example.txt"; + try (DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream(filename)); + DataInputStream dataInputStream = new DataInputStream(new FileInputStream(filename))) { + dataOutputStream.writeInt(97); + dataOutputStream.flush(); + + assertEquals(97, dataInputStream.readInt()); + } + assertTrue(Files.deleteIfExists(Paths.get(filename))); + } +} \ No newline at end of file diff --git a/src/test/java/com/examplehub/basics/io/DataOutputStreamExampleTest.java b/src/test/java/com/examplehub/basics/io/DataOutputStreamExampleTest.java new file mode 100644 index 00000000..069720e9 --- /dev/null +++ b/src/test/java/com/examplehub/basics/io/DataOutputStreamExampleTest.java @@ -0,0 +1,22 @@ +package com.examplehub.basics.io; + +import org.junit.jupiter.api.Test; + +import java.io.DataOutputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; + +import static org.junit.jupiter.api.Assertions.*; + +class DataOutputStreamExampleTest { + @Test + void testWriteInt() throws IOException { + String filename = "example.txt"; + try(DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream(filename))) { + dataOutputStream.writeInt(97); + } + assertTrue(Files.deleteIfExists(Paths.get(filename))); + } +} \ No newline at end of file diff --git a/src/test/java/com/examplehub/basics/io/FileExampleTest.java b/src/test/java/com/examplehub/basics/io/FileExampleTest.java index ca838dc9..fe82cf73 100644 --- a/src/test/java/com/examplehub/basics/io/FileExampleTest.java +++ b/src/test/java/com/examplehub/basics/io/FileExampleTest.java @@ -68,7 +68,7 @@ void testIsDirectory() { @Test void testCreateDelete() throws IOException { - File file = new File("example.txt"); + File file = new File("demo.txt"); assertTrue(file.createNewFile()); assertTrue(file.delete()); } diff --git a/src/test/java/com/examplehub/basics/io/FileOutputStreamExampleTest.java b/src/test/java/com/examplehub/basics/io/FileOutputStreamExampleTest.java index bdf941ad..c132a5ee 100644 --- a/src/test/java/com/examplehub/basics/io/FileOutputStreamExampleTest.java +++ b/src/test/java/com/examplehub/basics/io/FileOutputStreamExampleTest.java @@ -4,6 +4,9 @@ import java.io.*; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; + import org.junit.jupiter.api.Test; class FileOutputStreamExampleTest { @@ -40,8 +43,8 @@ void testCopyFile() throws IOException { while ((readBytes = inputStream.read(bytes)) != -1) { outputStream.write(bytes, 0, readBytes); } + assertEquals(new File(srcPath).length(), new File(destPath).length()); } - - assertTrue(DeleteFile.deleteFile("pom.xml.bk")); + Files.deleteIfExists(Paths.get(destPath)); } } diff --git a/src/test/java/com/examplehub/basics/io/FileReaderExampleTest.java b/src/test/java/com/examplehub/basics/io/FileReaderExampleTest.java index bec3dd5f..39d9fc58 100644 --- a/src/test/java/com/examplehub/basics/io/FileReaderExampleTest.java +++ b/src/test/java/com/examplehub/basics/io/FileReaderExampleTest.java @@ -1,33 +1,81 @@ package com.examplehub.basics.io; import com.examplehub.utils.StringUtils; -import java.io.FileReader; -import java.io.IOException; -import java.io.Reader; -import java.nio.charset.StandardCharsets; import org.junit.jupiter.api.Test; +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; + +import static org.junit.jupiter.api.Assertions.assertEquals; + class FileReaderExampleTest { + @Test - void testReadChar() throws IOException { - try (Reader reader = new FileReader("pom.xml", StandardCharsets.UTF_8)) { + void testReadSingleChar() throws IOException { + String filename = "example.txt"; + try (Writer writer = new FileWriter(filename)) { + writer.write("Java"); + } + try (Reader reader = new FileReader(filename)) { + assertEquals('J', reader.read()); + assertEquals('a', reader.read()); + assertEquals('v', reader.read()); + assertEquals('a', reader.read()); + assertEquals(-1, reader.read()); + } + Files.deleteIfExists(Paths.get(filename)); + } + + @Test + void testReadChars() throws IOException { + String filename = "example.txt"; + try (Writer writer = new FileWriter(filename)) { + writer.write("Java"); + } + try (Reader reader = new FileReader(filename, StandardCharsets.UTF_8)) { + char[] letter = new char[4]; + int index = 0; int ch; while ((ch = reader.read()) != -1) { - System.out.print((char) ch); + letter[index++] = (char) ch; } - } finally { - System.out.println("read completed"); + assertEquals("Java", new String(letter)); } } @Test - void testReadChars() throws IOException { - try (Reader reader = new FileReader("pom.xml", StandardCharsets.UTF_8)) { + void testReadCharsToArray() throws IOException { + String filename = "example.txt"; + try (Writer writer = new FileWriter(filename)) { + writer.write("I love\n"); + writer.write("Java"); + } + try (Reader reader = new FileReader(filename, StandardCharsets.UTF_8)) { char[] buffer = new char[1024]; - int len = 0; + int len; + StringBuilder builder = new StringBuilder(); while ((len = reader.read(buffer)) != -1) { - System.out.print(StringUtils.toString(buffer, 0, len)); + builder.append(StringUtils.toString(buffer, 0, len)); + } + assertEquals("I love\nJava", builder.toString()); + } + } + + @Test + void testCopyCharacterFile() throws IOException { + String filename = "pom.xml"; + String newFile = "pom_bk.xml"; + try (Writer writer = new FileWriter(newFile); Reader reader = new FileReader(filename)) { + int ch; + while ((ch = reader.read()) != -1) { + writer.write(ch); } + writer.flush(); + assertEquals(new File(filename).length(), new File(newFile).length()); + }finally { + Files.deleteIfExists(Paths.get(newFile)); } } } diff --git a/src/test/java/com/examplehub/basics/io/FileWriterExampleTest.java b/src/test/java/com/examplehub/basics/io/FileWriterExampleTest.java index 32864396..9c1bba21 100644 --- a/src/test/java/com/examplehub/basics/io/FileWriterExampleTest.java +++ b/src/test/java/com/examplehub/basics/io/FileWriterExampleTest.java @@ -17,6 +17,39 @@ void testWrite() throws IOException { writer.write("hello"); } assertEquals("hello", FileReaderExample.read(fileName)); - Files.deleteIfExists(Paths.get("example.txt")); + Files.deleteIfExists(Paths.get(fileName)); + } + + @Test + void testWriteSingleChar() throws IOException{ + String fileName = "example.txt"; + try (Writer writer = new FileWriter(fileName)) { + writer.write('A'); + writer.write(66); //write B + } + assertEquals("AB", FileReaderExample.read(fileName)); + Files.deleteIfExists(Paths.get(fileName)); + } + + @Test + void testWriteCharArray() throws IOException{ + char[] letters = {'J', 'a', 'v', 'a'}; + String fileName = "example.txt"; + try (Writer writer = new FileWriter(fileName)) { + writer.write(letters); + } + assertEquals("Java", FileReaderExample.read(fileName)); + Files.deleteIfExists(Paths.get(fileName)); + } + + @Test + void testWriteOnesOfCharArray() throws IOException{ + char[] letters = {'J', 'a', 'v', 'a'}; + String fileName = "example.txt"; + try (Writer writer = new FileWriter(fileName)) { + writer.write(letters, 1, 2); + } + assertEquals("av", FileReaderExample.read(fileName)); + Files.deleteIfExists(Paths.get(fileName)); } } diff --git a/src/test/java/com/examplehub/basics/io/PrintStreamExampleTest.java b/src/test/java/com/examplehub/basics/io/PrintStreamExampleTest.java new file mode 100644 index 00000000..f47cd787 --- /dev/null +++ b/src/test/java/com/examplehub/basics/io/PrintStreamExampleTest.java @@ -0,0 +1,22 @@ +package com.examplehub.basics.io; + +import org.junit.jupiter.api.Test; + +import java.io.IOException; +import java.io.PrintStream; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; + +import static org.junit.jupiter.api.Assertions.*; + +class PrintStreamExampleTest { + @Test + void testPrint() throws IOException { + String filename = "example.txt"; + PrintStream printStream = new PrintStream(filename); + printStream.write("Java".getBytes(StandardCharsets.UTF_8)); + assertEquals("Java", FileReaderExample.read(filename)); + assertTrue(Files.deleteIfExists(Paths.get(filename))); + } +} \ No newline at end of file diff --git a/src/test/java/com/examplehub/basics/io/RecursionPrintDirectoryTest.java b/src/test/java/com/examplehub/basics/io/RecursionPrintDirectoryTest.java index 44cbcd22..3c0a8ee5 100644 --- a/src/test/java/com/examplehub/basics/io/RecursionPrintDirectoryTest.java +++ b/src/test/java/com/examplehub/basics/io/RecursionPrintDirectoryTest.java @@ -1,9 +1,10 @@ package com.examplehub.basics.io; -import java.io.File; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; +import java.io.File; + class RecursionPrintDirectoryTest { @Test