From e1dea14aa1ae7d9e684c5c47544feed46cf82a32 Mon Sep 17 00:00:00 2001 From: Charles Gould Date: Mon, 16 Oct 2017 21:59:34 -0400 Subject: [PATCH] Revert "Simplify WordReader" This reverts commit c029880e071b4c90a00f646202bf3ef9a923958a. --- .../main/java/lingo/common/WordReader.java | 33 ++++++++++++++----- .../java/lingo/server/WordRepository.java | 3 +- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/lingo/common/WordReader.java b/common/src/main/java/lingo/common/WordReader.java index 97cee99..aa574fa 100644 --- a/common/src/main/java/lingo/common/WordReader.java +++ b/common/src/main/java/lingo/common/WordReader.java @@ -1,21 +1,38 @@ package lingo.common; -import java.net.URI; -import java.nio.file.Files; -import java.nio.file.Paths; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; public class WordReader { - public static List readFileToList(String filename) throws Exception { - final URI resource = WordReader.class.getResource(filename).toURI(); - return Files.readAllLines(Paths.get(resource)); + private static void readFileToCollection(String filename, Collection c) throws IOException { + try (final InputStream stream = WordReader.class.getResourceAsStream(filename); + final InputStreamReader streamReader = new InputStreamReader(stream); + final BufferedReader bufferedReader = new BufferedReader(streamReader)) { + String line = null; + while ((line = bufferedReader.readLine()) != null) { + c.add(line); + } + } } - public static Set readFileToSet(String filename) throws Exception { - return new HashSet<>(readFileToList(filename)); + public static List readFileToList(String filename) throws IOException { + final List list = new ArrayList<>(); + readFileToCollection(filename, list); + return list; + } + + public static Set readFileToSet(String filename) throws IOException { + final Set list = new HashSet<>(); + readFileToCollection(filename, list); + return list; } } diff --git a/server/src/main/java/lingo/server/WordRepository.java b/server/src/main/java/lingo/server/WordRepository.java index 27e2e59..eaad226 100644 --- a/server/src/main/java/lingo/server/WordRepository.java +++ b/server/src/main/java/lingo/server/WordRepository.java @@ -1,5 +1,6 @@ package lingo.server; +import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -16,7 +17,7 @@ public class WordRepository { private final List words; - public WordRepository() throws Exception { + public WordRepository() throws IOException { guesses = WordReader.readFileToSet("/guesses.txt"); words = WordReader.readFileToList("/words.txt"); }