@@ -52,11 +52,10 @@ public static void writeV1(RainbowFish rainbowFish, String filename) throws IOEx
5252 map .put ("age" , String .format ("%d" , rainbowFish .getAge ()));
5353 map .put ("lengthMeters" , String .format ("%d" , rainbowFish .getLengthMeters ()));
5454 map .put ("weightTons" , String .format ("%d" , rainbowFish .getWeightTons ()));
55- FileOutputStream fileOut = new FileOutputStream (filename );
56- ObjectOutputStream objOut = new ObjectOutputStream (fileOut );
57- objOut .writeObject (map );
58- objOut .close ();
59- fileOut .close ();
55+ try (FileOutputStream fileOut = new FileOutputStream (filename );
56+ ObjectOutputStream objOut = new ObjectOutputStream (fileOut )) {
57+ objOut .writeObject (map );
58+ }
6059 }
6160
6261 /**
@@ -71,23 +70,24 @@ public static void writeV2(RainbowFishV2 rainbowFish, String filename) throws IO
7170 map .put ("angry" , Boolean .toString (rainbowFish .getAngry ()));
7271 map .put ("hungry" , Boolean .toString (rainbowFish .getHungry ()));
7372 map .put ("sleeping" , Boolean .toString (rainbowFish .getSleeping ()));
74- FileOutputStream fileOut = new FileOutputStream (filename );
75- ObjectOutputStream objOut = new ObjectOutputStream (fileOut );
76- objOut .writeObject (map );
77- objOut .close ();
78- fileOut .close ();
73+ try (FileOutputStream fileOut = new FileOutputStream (filename );
74+ ObjectOutputStream objOut = new ObjectOutputStream (fileOut )) {
75+ objOut .writeObject (map );
76+ }
7977 }
8078
8179 /**
8280 * Read V1 RainbowFish from file
8381 */
8482 public static RainbowFish readV1 (String filename ) throws IOException , ClassNotFoundException {
85- FileInputStream fileIn = new FileInputStream (filename );
86- ObjectInputStream objIn = new ObjectInputStream (fileIn );
87- Map <String , String > map = (Map <String , String >) objIn .readObject ();
88- objIn .close ();
89- fileIn .close ();
90- return new RainbowFish (map .get ("name" ), Integer .parseInt (map .get ("age" )), Integer .parseInt (map
91- .get ("lengthMeters" )), Integer .parseInt (map .get ("weightTons" )));
83+ Map <String , String > map = null ;
84+
85+ try (FileInputStream fileIn = new FileInputStream (filename );
86+ ObjectInputStream objIn = new ObjectInputStream (fileIn )) {
87+ map = (Map <String , String >) objIn .readObject ();
88+ }
89+
90+ return new RainbowFish (map .get ("name" ), Integer .parseInt (map .get ("age" )), Integer .parseInt (map .get ("lengthMeters" )),
91+ Integer .parseInt (map .get ("weightTons" )));
9292 }
9393}
0 commit comments