diff --git a/core-java-modules/core-java-io-apis-2/src/test/java/com/baeldung/inputstream/InputStreamTest.java b/core-java-modules/core-java-io-apis-2/src/test/java/com/baeldung/inputstream/InputStreamTest.java index 553085d2fe..0a00affbd8 100644 --- a/core-java-modules/core-java-io-apis-2/src/test/java/com/baeldung/inputstream/InputStreamTest.java +++ b/core-java-modules/core-java-io-apis-2/src/test/java/com/baeldung/inputstream/InputStreamTest.java @@ -1,14 +1,21 @@ package com.baeldung.inputstream; +import static org.junit.jupiter.api.io.CleanupMode.ALWAYS; + import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.junit.Assert; import org.junit.jupiter.api.Test; @@ -64,4 +71,28 @@ public class InputStreamTest { } return sb.toString(); } + + @Test + public void givenKeyValuePairs_whenWrittenInATextFile_thenSuccessWhenParsedWithObjectInputStream( + @TempDir(cleanup = ALWAYS) Path tempDir) throws IOException, ClassNotFoundException { + Path sampleOut = tempDir.resolve("sample-out.txt"); + File fileText = sampleOut.toFile(); + //Serialize a Hashmap then write it into a file. + Map kv = new HashMap<>(); + try (FileOutputStream fileOutStream = new FileOutputStream(fileText)) { + try (ObjectOutputStream objectOutStream = new ObjectOutputStream(fileOutStream)) { + kv.put("baseURL", "baeldung.com"); + kv.put("apiKey", "this_is_a_test_key"); + objectOutStream.writeObject(kv); + } + } + //Deserialize the contents of a file then transform it back into a Hashmap + try (FileInputStream fileStream = new FileInputStream(fileText)) { + try (ObjectInputStream input = new ObjectInputStream(fileStream)) { + HashMap inputKv = (HashMap) input.readObject(); + Assert.assertEquals(kv.get("baseURL"), inputKv.get("baseURL")); + Assert.assertEquals(kv.get("apiKey"), inputKv.get("apiKey")); + } + } + } }