public List<Entry> readTextFile(String filename, Updater theUpdater) {
       
        List<Entry> journal = new LinkedList<>();

        try {
            BufferedReader fin = new BufferedReader(new FileReader(filename));
            String line = null;
            int numEntries = 0;
            int numScriptures = 0;
            int numTopics = 0;
            while (fin.ready()) {
                
                try {
                    Thread.sleep(500);
                } catch (InterruptedException ex) {
                    Logger.getLogger(InsightJournal.class.getName()).log(Level.SEVERE, null, ex);
                }
                
                Date tempDate;

                String content = null;
                
                //read in the file
                if (line == null) {
                    line = fin.readLine();
                }
                
                line = fin.readLine();
                tempDate = new Date(line);
                while (fin.ready()) {
                    line = fin.readLine();
                    if (content != null) {
                        if (line.equals("-----")) {
                            break;
                        }  
                        content = content.concat("\n" + line);
                    } else if (!fin.ready()) {                      
                        content += "\n" + line;
                    } else {  
                        content = line;  
                    }
                }
                Entry tempEntry = parseText(content, tempDate);
                numScriptures += tempEntry.getScriptures().size();
                numTopics += tempEntry.getTopics().size();
                journal.add(tempEntry);
                numEntries++;
                
                theUpdater.update(numEntries, numScriptures, numTopics);
            } //end read in while loop;
        }
        catch (IOException e) {
            System.out.println("ERROR: could not read in text file " + e);
        }
        return journal;
    }