From 22eb4940b84fea181bcaabaead41c819a0d3a59c Mon Sep 17 00:00:00 2001 From: Du Yuanchao Date: Mon, 8 Nov 2021 15:04:42 +0800 Subject: [PATCH 1/3] refactor directory --- .../java/com/examplehub/basics/{file => io}/CreateFolder.java | 2 +- .../com/examplehub/basics/{file => io}/DeleteEmptyFolder.java | 2 +- .../java/com/examplehub/basics/{file => io}/DeleteFile.java | 2 +- .../com/examplehub/basics/{file => io}/CreateFolderTest.java | 3 ++- .../examplehub/basics/{file => io}/DeleteEmptyFolderTest.java | 2 +- .../com/examplehub/basics/{file => io}/DeleteFileTest.java | 2 +- .../com/examplehub/basics/io/FileOutputStreamExampleTest.java | 1 - 7 files changed, 7 insertions(+), 7 deletions(-) rename src/main/java/com/examplehub/basics/{file => io}/CreateFolder.java (82%) rename src/main/java/com/examplehub/basics/{file => io}/DeleteEmptyFolder.java (79%) rename src/main/java/com/examplehub/basics/{file => io}/DeleteFile.java (81%) rename src/test/java/com/examplehub/basics/{file => io}/CreateFolderTest.java (77%) rename src/test/java/com/examplehub/basics/{file => io}/DeleteEmptyFolderTest.java (84%) rename src/test/java/com/examplehub/basics/{file => io}/DeleteFileTest.java (92%) diff --git a/src/main/java/com/examplehub/basics/file/CreateFolder.java b/src/main/java/com/examplehub/basics/io/CreateFolder.java similarity index 82% rename from src/main/java/com/examplehub/basics/file/CreateFolder.java rename to src/main/java/com/examplehub/basics/io/CreateFolder.java index 64605565..78ad3dbe 100644 --- a/src/main/java/com/examplehub/basics/file/CreateFolder.java +++ b/src/main/java/com/examplehub/basics/io/CreateFolder.java @@ -1,4 +1,4 @@ -package com.examplehub.basics.file; +package com.examplehub.basics.io; import java.io.File; diff --git a/src/main/java/com/examplehub/basics/file/DeleteEmptyFolder.java b/src/main/java/com/examplehub/basics/io/DeleteEmptyFolder.java similarity index 79% rename from src/main/java/com/examplehub/basics/file/DeleteEmptyFolder.java rename to src/main/java/com/examplehub/basics/io/DeleteEmptyFolder.java index 14f1b366..762fd0dd 100644 --- a/src/main/java/com/examplehub/basics/file/DeleteEmptyFolder.java +++ b/src/main/java/com/examplehub/basics/io/DeleteEmptyFolder.java @@ -1,4 +1,4 @@ -package com.examplehub.basics.file; +package com.examplehub.basics.io; public class DeleteEmptyFolder { public static boolean delete(String folderPath) { diff --git a/src/main/java/com/examplehub/basics/file/DeleteFile.java b/src/main/java/com/examplehub/basics/io/DeleteFile.java similarity index 81% rename from src/main/java/com/examplehub/basics/file/DeleteFile.java rename to src/main/java/com/examplehub/basics/io/DeleteFile.java index 4ecdf6e6..bdd635d1 100644 --- a/src/main/java/com/examplehub/basics/file/DeleteFile.java +++ b/src/main/java/com/examplehub/basics/io/DeleteFile.java @@ -1,4 +1,4 @@ -package com.examplehub.basics.file; +package com.examplehub.basics.io; import java.io.File; diff --git a/src/test/java/com/examplehub/basics/file/CreateFolderTest.java b/src/test/java/com/examplehub/basics/io/CreateFolderTest.java similarity index 77% rename from src/test/java/com/examplehub/basics/file/CreateFolderTest.java rename to src/test/java/com/examplehub/basics/io/CreateFolderTest.java index 8f4c887a..7848b9e5 100644 --- a/src/test/java/com/examplehub/basics/file/CreateFolderTest.java +++ b/src/test/java/com/examplehub/basics/io/CreateFolderTest.java @@ -1,7 +1,8 @@ -package com.examplehub.basics.file; +package com.examplehub.basics.io; 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/file/DeleteEmptyFolderTest.java b/src/test/java/com/examplehub/basics/io/DeleteEmptyFolderTest.java similarity index 84% rename from src/test/java/com/examplehub/basics/file/DeleteEmptyFolderTest.java rename to src/test/java/com/examplehub/basics/io/DeleteEmptyFolderTest.java index 3d327b6d..455c530e 100644 --- a/src/test/java/com/examplehub/basics/file/DeleteEmptyFolderTest.java +++ b/src/test/java/com/examplehub/basics/io/DeleteEmptyFolderTest.java @@ -1,4 +1,4 @@ -package com.examplehub.basics.file; +package com.examplehub.basics.io; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/com/examplehub/basics/file/DeleteFileTest.java b/src/test/java/com/examplehub/basics/io/DeleteFileTest.java similarity index 92% rename from src/test/java/com/examplehub/basics/file/DeleteFileTest.java rename to src/test/java/com/examplehub/basics/io/DeleteFileTest.java index d82ee09e..97edd59f 100644 --- a/src/test/java/com/examplehub/basics/file/DeleteFileTest.java +++ b/src/test/java/com/examplehub/basics/io/DeleteFileTest.java @@ -1,4 +1,4 @@ -package com.examplehub.basics.file; +package com.examplehub.basics.io; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/com/examplehub/basics/io/FileOutputStreamExampleTest.java b/src/test/java/com/examplehub/basics/io/FileOutputStreamExampleTest.java index 5c7183d8..bdf941ad 100644 --- a/src/test/java/com/examplehub/basics/io/FileOutputStreamExampleTest.java +++ b/src/test/java/com/examplehub/basics/io/FileOutputStreamExampleTest.java @@ -2,7 +2,6 @@ import static org.junit.jupiter.api.Assertions.*; -import com.examplehub.basics.file.DeleteFile; import java.io.*; import java.nio.charset.StandardCharsets; import org.junit.jupiter.api.Test; From dff10ba08ce39d79ed7ec02dec4966724aff9f51 Mon Sep 17 00:00:00 2001 From: Du Yuanchao Date: Mon, 8 Nov 2021 15:57:55 +0800 Subject: [PATCH 2/3] list files recursion --- .../examplehub/basics/io/FileExampleTest.java | 49 +++++++++++++++++++ .../io/RecursionPrintDirectoryTest.java | 6 ++- 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/examplehub/basics/io/FileExampleTest.java b/src/test/java/com/examplehub/basics/io/FileExampleTest.java index df0276c5..ca838dc9 100644 --- a/src/test/java/com/examplehub/basics/io/FileExampleTest.java +++ b/src/test/java/com/examplehub/basics/io/FileExampleTest.java @@ -6,10 +6,39 @@ import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.Objects; import org.junit.jupiter.api.Test; class FileExampleTest { + + @Test + void testInit() { + File file = new File("pom.xml"); + file = new File("/root/example_dir/example_file.txt"); + } + + @Test + void testLength() { + File file = new File("pom.xml"); + assertTrue(file.length() >= 0); + } + + @Test + void testLastModified() { + File file = new File("pom.xml"); + long lastModified = file.lastModified(); + String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(lastModified)); + System.out.println(date); // 2021-08-31 09:27:21 + } + + @Test + void testGetName() { + File file = new File("pom.xml"); + assertEquals("pom.xml", file.getName()); + } + @Test void testPath() throws IOException { File file = new File("../example.txt"); @@ -72,6 +101,7 @@ void testList() { void testListWithFilter() { File file = new File("."); File[] files = file.listFiles((dir, name) -> name.endsWith(".xml")); + assert files != null; assertEquals(1, files.length); assertEquals("pom.xml", files[0].getName()); } @@ -81,6 +111,7 @@ void testMkdir() { File file = new File("temp"); assertTrue(file.mkdir()); assertTrue(file.delete()); + assertFalse(file.exists()); } @Test @@ -90,6 +121,7 @@ void testMkdirs() { assertTrue(file.delete()); assertTrue(new File("temp/sub").delete()); assertTrue(new File("temp").delete()); + assertFalse(file.exists()); } @Test @@ -101,4 +133,21 @@ void testPaths() { File file = path.toFile(); assertEquals("pom.xml", file.getName()); } + + @Test + void testExists() { + File file = new File("pom.xml"); + assertTrue(file.exists()); + file = new File("pom_bk.xml"); + assertFalse(file.exists()); + } + + @Test + void testDelete() throws IOException { + File file = new File("pom_bk.xml"); + assertTrue(file.createNewFile()); + assertTrue(file.exists()); + assertTrue(file.delete()); + assertFalse(file.exists()); + } } diff --git a/src/test/java/com/examplehub/basics/io/RecursionPrintDirectoryTest.java b/src/test/java/com/examplehub/basics/io/RecursionPrintDirectoryTest.java index 85b2ba60..3c0a8ee5 100644 --- a/src/test/java/com/examplehub/basics/io/RecursionPrintDirectoryTest.java +++ b/src/test/java/com/examplehub/basics/io/RecursionPrintDirectoryTest.java @@ -1,12 +1,14 @@ package com.examplehub.basics.io; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import java.io.File; -import org.junit.jupiter.api.Test; class RecursionPrintDirectoryTest { + @Test + @Disabled void test1() { RecursionPrintDirectory.printFiles(new File("src/main/java")); } From 381ff8bdfca5f7fddf022dc76898e9ce1f95afe1 Mon Sep 17 00:00:00 2001 From: Du Yuanchao Date: Mon, 8 Nov 2021 23:42:23 +0800 Subject: [PATCH 3/3] io operation --- .../basics/io/BufferInputStreamExample.java | 4 + .../basics/io/BufferReaderExample.java | 4 + .../basics/io/DataInputStreamExample.java | 5 ++ .../basics/io/DataOutputStreamExample.java | 4 + .../basics/io/PrintStreamExample.java | 4 + .../io/BufferInputStreamExampleTest.java | 28 +++++++ .../basics/io/BufferReaderExampleTest.java | 32 ++++++++ .../basics/io/DataInputStreamExampleTest.java | 24 ++++++ .../io/DataOutputStreamExampleTest.java | 22 ++++++ .../examplehub/basics/io/FileExampleTest.java | 2 +- .../io/FileOutputStreamExampleTest.java | 7 +- .../basics/io/FileReaderExampleTest.java | 74 +++++++++++++++---- .../basics/io/FileWriterExampleTest.java | 35 ++++++++- .../basics/io/PrintStreamExampleTest.java | 22 ++++++ 14 files changed, 250 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/examplehub/basics/io/BufferInputStreamExample.java create mode 100644 src/main/java/com/examplehub/basics/io/BufferReaderExample.java create mode 100644 src/main/java/com/examplehub/basics/io/DataInputStreamExample.java create mode 100644 src/main/java/com/examplehub/basics/io/DataOutputStreamExample.java create mode 100644 src/main/java/com/examplehub/basics/io/PrintStreamExample.java create mode 100644 src/test/java/com/examplehub/basics/io/BufferInputStreamExampleTest.java create mode 100644 src/test/java/com/examplehub/basics/io/BufferReaderExampleTest.java create mode 100644 src/test/java/com/examplehub/basics/io/DataInputStreamExampleTest.java create mode 100644 src/test/java/com/examplehub/basics/io/DataOutputStreamExampleTest.java create mode 100644 src/test/java/com/examplehub/basics/io/PrintStreamExampleTest.java 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/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