0

Please take a look at my code.

import java.util.*;
import java.io.*;
public class LibraryDriver {
    public static void main(String[] theArgs) {
        String theAuthor = "";
        String theTitle = "";
        Scanner input = null;
        PrintStream output = null;
        try {
            input = new Scanner(new File("LibraryIn1.txt"));
            output = new PrintStream(new File("LibraryOut.txt"));
        } catch (Exception e) {
            System.out.println("Difficulties opening the file! " + e);
            System.exit(1);
        }
        ArrayList < String > authors = new ArrayList < String > ();
        ArrayList < Book > books = new ArrayList < Book > ();
        while (input.hasNext()) {
            // Read title 
            theTitle = input.nextLine();
            // Read author(s)
            theAuthor = input.nextLine();
            authors = new ArrayList < String > (getAuthors(theAuthor));
            // Insert title & author(s)into a book

            // Add this book to the ArrayList<Book> of books 
            books.add(new Book(theTitle, authors));
            authors.clear();
        }

        // Instantiate a Library object filled with the books read thus far 
        // and write the contents of the library to the output file 
        Library lib = new Library(books);
        output.println("PRINTS INITIAL BOOK LIST:");
        output.println(lib);
        // Sort the current contents of the library
        lib.sort();
        // and write the contents of the sorted library to the output file
        output.println("\nPRINTS SORTED BOOK LIST:");
        output.println(lib);
        // Close the first input file and open the second input file. 
        // Read the titles and authors from the second input file, 
        // add them to the library, and write the contents of the 
        // library to the output file. 
        input.close();

        try {
            input = new Scanner(new File("LibraryIn2.txt"));
            output = new PrintStream(new File("LibraryOut.txt"));
        } catch (Exception e) {
            System.out.println("Difficulties opening the file! " + e);
            System.exit(1);
        }
        while (input.hasNext()) {
            theTitle = input.nextLine();
            theAuthor = input.nextLine();
            authors = (getAuthors(theAuthor));
            Book b = new Book(theTitle, authors);
            lib.add(b);
        }
        output.println("\nPRINT WITH NEW BOOK UNSORTED:");
        output.println(lib);
        // Sort the library and write it to the output file 
        lib.sort();
        output.println("\nPRINT ALL SORTED BOOK LIST:");
        output.println(lib);
        // The following tests the findTitles method, i.e. test
        // the findTitles method by passing “Acer Dumpling” and
        // then “The Bluff”:
        // Write only the "Acer Dumpling" books to the output file
        output.println("\nPRINT ALL ACER DUMPLINGS:");
        for (Book b: lib.findTitles("Acer Dumpling")) {
            output.println(b);
        }
        // Write only the "The Bluff" books to the output file
        output.println("\nPRINT ALL THE BLUFFS:");
        for (Book b: lib.findTitles("The Bluff")) {
            output.println(b);
        }

        // Close all open files and end main. 
        input.close();
        output.close();
    }

    // Header for method that separates author names and 
    // returns an ArrayList<String> containing the author names 

    public static ArrayList < String > getAuthors(String theAuthors) {
        String[] temp = theAuthors.split("\\*");
        ArrayList < String > result = new ArrayList < String > (Arrays.asList(temp));
        return result;
    }
}

After running this program, the output file only loads like this:

PRINT WITH NEW BOOK UNSORTED:
(the list of books' title and authors)

PRINT ALL SORTED BOOK LIST:
(the list of books' title and authors)

PRINT ALL ACER DUMPLINGS:
(the list of title with acer dumpling)

PRINT ALL THE BLUFFS:
(the list of title with the bluff)

The first two parts "PRINT INITIAL BOOK LIST" and "PRINT SORTED BOOK LIST" are missing but I don't know how to figure that out. Thanks!

MartenCatcher
  • 2,713
  • 8
  • 26
  • 39

1 Answers1

0

You have asked don't know how to figure that out.

My answer is mentioned below:

  1. Import your project in the eclipse.
  2. Put the debug point in your code at multiple points.
  3. Use the bug icon in eclipse to debug the class file.
  4. Once it hits the debug pointer you have set, use F6 to debug it line by line or you can use F5 to jump into the method.

You can also refer the link mentioned below:

https://www.eclipse.org/community/eclipse_newsletter/2017/june/article1.php

marco525
  • 50
  • 11
  • I did debug with jgrasp, the program goes through those two parts but the output file still missing the first two parts. As I was trying to just System.out.println for those, those two parts load on my run I/O block. – DONGYANG TAO Nov 05 '19 at 21:33
  • Can you share the Book and Library classes as well ? – marco525 Nov 06 '19 at 07:45