From 88996448351b561c772b9be296eb0db4ea01e840 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Thu, 22 May 2014 17:32:02 +0200 Subject: Properly close files after load/save --- src/io/SearchImpl.java | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/io/SearchImpl.java b/src/io/SearchImpl.java index 82925cf..5bceadc 100644 --- a/src/io/SearchImpl.java +++ b/src/io/SearchImpl.java @@ -3,14 +3,13 @@ package io; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; -import com.google.gson.JsonPrimitive; -import java.io.BufferedWriter; +import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.io.FileOutputStream; +import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; -import java.io.Writer; +import java.io.Reader; import static java.lang.Thread.sleep; import java.util.Scanner; import java.util.concurrent.BlockingQueue; @@ -87,29 +86,28 @@ public class SearchImpl implements Search { @Override public final void save(String filename) { - try { - FileWriter writer = new FileWriter(filename); - + try (FileWriter writer = new FileWriter(filename)) { for (Request req : requestQueue) { writer.append(req.toString() + "\n"); } } catch (IOException ex) { - Logger.getLogger(SearchImpl.class.getName()).log(Level.SEVERE, null, ex); + Logger.getLogger(SearchImpl.class.getName()).log(Level.SEVERE, + "save error", ex); } } @Override public final void load(String filename) { - try { - FileInputStream inputFile = new FileInputStream(filename); - Scanner input = new Scanner(inputFile); - - while (input.hasNext()) { - String line = input.nextLine(); + try (Reader fileReader = new FileReader(filename)) { + BufferedReader reader = new BufferedReader(fileReader); + + String line; + while ((line = reader.readLine()) != null) { requestQueue.offer(new Request(line)); } - } catch (FileNotFoundException ex) { - save(filename); + } catch (IOException ex) { + Logger.getLogger(SearchImpl.class.getName()).log(Level.SEVERE, + "load error", ex); } } -- cgit v1.2.1