Note that there are some explanatory texts on larger screens.

plurals
  1. POJAVA: Split main into methods and put in another class?
    primarykey
    data
    text
    <p>I need a little help. I'm trying to shorten my main() and move some code into methods and put it in my other class Contact.java. Like for certain things like Reading a file I want to have a method that is just for reading the file and put it in Contact.java. Same goes for Writing to file, I want a seperate method that I can call back in the main(). I understand how to make the method, but how do I call that method back into ContactList.java from Contact.java? Any suggestions? </p> <pre><code>import java.io.*; import java.util.*; public class ContactList { public static void main(String args[]) throws IOException { Contact contact; contact = new Contact(); int action = 0; ArrayList&lt;Contact&gt; contacts = new ArrayList&lt;Contact&gt;(); while (action != 6) { System.out.println("\nWelcome to Contact List DB. " + "What would you like to do? \n"); System.out.println("1. Enter a new person" + "\n" + "2. Print the contact list" + "\n" + "3. Retrieve a person's information by last name" + "\n" + "4. Retrieve a person's information by email address" + "\n" + "5. Retrieve all people who live in a given zip code" + "\n" + "6. Exit"); Scanner reader = new Scanner(System.in); reader.useDelimiter("\n"); action = reader.nextInt(); if (action &lt;= 0 || action &gt; 6) { System.out.println("Invalid selection. "); } switch (action) { case 1: { System.out.println("\nEnter Contact Last Name:"); String lastname = reader.next(); if (lastname == null) { System.out.println("\nInvalid entry. "); break; } else { contact.setLastName(lastname.toLowerCase()); } System.out.println("Enter Contact First Name: "); String firstname = reader.next(); contact.setFirstName(firstname.toLowerCase()); System.out.println("Enter Contact Street Address: "); String address = reader.next(); contact.setHouseAddress(address.toLowerCase()); System.out.println("Enter Contact City: "); String city = reader.next(); contact.setCity(city.toLowerCase()); System.out.println("Enter Contact Zip Code: "); String zip = reader.next(); contact.setZip(zip.toLowerCase()); System.out.println("Enter Contact Email: "); String email = reader.next(); contact.setEmail(email.toLowerCase()); System.out.println("Enter Contact Phone Number: "); String phone = reader.next(); contact.setPhone(phone.toLowerCase()); System.out.println("Enter Contact Notes: "); String notes = reader.next(); contact.setNotes(notes.toLowerCase()); contacts.add(contact); try { Contact c = contact; File file = new File("contactlist.csv"); // If file doesn't exists, then create it. if (!file.exists()) { file.createNewFile(); } try (PrintWriter output = new PrintWriter(new FileWriter( "contactlist.csv", true))) { output.printf("%s\r\n", c); } catch (Exception e) { } System.out.println("Your contact has been saved."); } catch (IOException e) { e.printStackTrace(); } } break; case 2: { int counter = 0; String line = null; // Location of file to read File file = new File("contactlist.csv"); // Sort contacts and print to console try { Scanner scanner = new Scanner(file); // Before printing, add each line to a sorted set. by Seth // Copeland Set&lt;String&gt; lines = new TreeSet&lt;&gt;(); while (scanner.hasNextLine()) { line = scanner.nextLine(); lines.add(line); counter++; } // Print sorted contacts to console. for (String fileLine : lines) { String outlook = fileLine.substring(0, 1).toUpperCase() + fileLine.substring(1); System.out.println(outlook); } scanner.close(); } catch (FileNotFoundException e) { } System.out.println("\n" + counter + " contacts in records."); } break; case 3: try { System.out.println("\nEnter the last" + "name to search for: "); String searchterm = reader.next(); // Open the file as a buffered reader BufferedReader bf = new BufferedReader(new FileReader( "contactlist.csv")); // Start a line count and declare a string to hold our // current line. int linecount = 0; String line; // Let the user know what we are searching for System.out.println("Searching for " + searchterm + " in file..."); // Loop through each line, putting the line into our line // variable. boolean noMatches = true; while ((line = bf.readLine()) != null) { // Increment the count and find the index of the word. linecount++; int indexfound = line.indexOf(searchterm.toLowerCase()); // If greater than -1, means we found a match. if (indexfound &gt; -1) { System.out.println("\nContact was FOUND\n" + "\nContact " + linecount + ": " + line); noMatches = false; } } // Close the file after done searching bf.close(); if (noMatches) { System.out.println("\nNO MATCH FOUND.\n"); } } catch (IOException e) { System.out.println("IO Error Occurred: " + e.toString()); } break; case 4: try { System.out.println("\nEnter the email " + "address to search for: "); String searchterm = reader.next(); // Open the file as a buffered reader BufferedReader bf = new BufferedReader(new FileReader( "contactlist.csv")); // Start a line count and declare a string to hold our // current line. int linecount = 0; String line; // Let the user know what we are searching for System.out.println("\nSearching for " + searchterm + " in file..."); // Loop through each line, put the line into our line // variable. boolean noMatches = true; while ((line = bf.readLine()) != null) { // Increment the count and find the index of the word linecount++; int indexfound = line.indexOf(searchterm.toLowerCase()); // If greater than -1, means we found a match if (indexfound &gt; -1) { System.out.println("\nContact was FOUND\n" + "\nContact " + linecount + ": " + line); noMatches = false; } } // Close the file after done searching bf.close(); if (noMatches) { System.out.println("\nNO MATCH FOUND.\n"); } } catch (IOException e) { System.out.println("IO Error Occurred: " + e.toString()); } break; case 5: try { System.out.println("\nEnter the Zipcode to search for: "); String searchterm = reader.next(); // Open the file as a buffered reader BufferedReader bf = new BufferedReader(new FileReader( "contactlist.csv")); // Start a line count and declare a string to hold our // current line. int linecount = 0; String line; // Let the user know what we are searching for System.out.println("\nSearching for " + searchterm + " in file..."); // Loop through each line, stashing the line into our line // variable. boolean noMatches = true; while ((line = bf.readLine()) != null) { // Increment the count and find the index of the word. linecount++; int indexfound = line.indexOf(searchterm.toLowerCase()); // If greater than -1, means we found a match. if (indexfound &gt; -1) { System.out.println("\nContact was FOUND\n" + "\nContact " + linecount + ": " + line); noMatches = false; } } // Close the file after done searching bf.close(); if (noMatches) { System.out.println("\nNO MATCH FOUND.\n"); } } catch (IOException e) { System.out.println("IO Error Occurred: " + e.toString()); } break; } } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload