Solved

Mulitple entries-Java

Posted on 2007-11-25
5
197 Views
Last Modified: 2013-11-23
I can't get this code to allow the user to enter more than one entry after hitting yes.

How do I do this?
// Week5.java
 
import java.util.*;
import java.io.*;
 
// class Week5 definition
public class Week5
{
	// method main
	public static void main(String args[])
	{
		System.out.println("This program will create a shopping list:");
 
		// call the inputItems method
		inputItems();
		// call the outputItems method
		outputItems();
 
		System.exit(0);
	}
 
	// method inputItems
	public static void inputItems()
	{
		Scanner keyboard = new Scanner(System.in);	// create a keyboard Scanner
		PrintWriter outFile = null;					// declare a PrintWriter
		String response;
 
 
		try
		{
			outFile = new PrintWriter(new FileOutputStream("shoppinglist.txt"));
			// get first item from user
			System.out.print("Please enter your first item: ");
			outFile.write(keyboard.nextLine() + "\n");
 
 
 
			System.out.print("Do you wish to enter more Items? Yes/No: ");
			response = keyboard.nextLine();
 
			while( response.toUpperCase().equals("Yes") )
			{
				// get next item from user
				System.out.print("Enter your next item: ");
				outFile.write( keyboard.nextLine() + "\n" );
				System.out.print("Do you wish to enter more Items? Yes/No: ");
				response = keyboard.nextLine();
			}
			outFile.close();					// close the file
		}
		catch(FileNotFoundException e)		// catch exception
		{
			// display the error message and exit program
			System.err.println("File write error occurred.");
			System.exit(0);
		}
 
 
 
	}
 
	// method outputItems
	public static void outputItems()
	{
		try
		{
			// create a Scanner for the input file
			Scanner inFile = new Scanner( new File("shoppinglist.txt"));
 
			System.out.println("Your shopping list contains: ");
 
			while( inFile.hasNextLine() )
 
				System.out.println( inFile.nextLine() );
 
			inFile.close();			// close the file
		}
		catch(IOException io)		// catch exception
		{
			// display the error message and exit program
			System.err.println("File read error occurred.");
			System.exit(0);
		}
 
	}
}

Open in new window

0
Comment
Question by:Talulia
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
5 Comments
 
LVL 92

Accepted Solution

by:
objects earned 250 total points
ID: 20347228
>                         while( response.toUpperCase().equals("Yes") )

change to:

                        while( response.equalsIgnoreCase("yes") )
0
 

Author Comment

by:Talulia
ID: 20347263
I've corrected that part.

How do I get the textfile to read the items inputted like this:

Ham
Cheese
Sausage

instead of like this:

HamCheeseSausage

I know I need to use the StringTokenizer class but not sure how to use it. "I think", anyways.
// Week5.java
 
import java.util.*;
import java.io.*;
 
// class Week5 definition
public class Week5
{
	// method main
	public static void main(String args[])
	{
		System.out.println("This program will create a shopping list:\n");
 
		// call the inputItems method
		inputItems();
		// call the outputItems method
		outputItems();
 
		System.exit(0);
	}
 
	// method inputItems
	public static void inputItems()
	{
		Scanner keyboard = new Scanner(System.in);	// create a keyboard Scanner
		PrintWriter outFile = null;					// declare a PrintWriter
		String response;
		String newentry;
 
 
		try
		{
			outFile = new PrintWriter(new FileOutputStream("shoppinglist.txt"));
			// get first item from user
			System.out.print("Please enter your first item: ");
			outFile.write(keyboard.nextLine() + "\n");
 
 
 
			System.out.print("Do you wish to enter more Items? Yes/No: ");
			response = keyboard.nextLine();
 
			while( response.equalsIgnoreCase("yes"))
			{
				// get next item from user
				System.out.print("Enter your next item: ");
				outFile.write( keyboard.nextLine() + "\n" );
 
				System.out.print("Do you wish to enter more Items? Yes/No: ");
				response = keyboard.nextLine();
			}
			outFile.close();					// close the file
		}
		catch(FileNotFoundException e)		// catch exception
		{
			// display the error message and exit program
			System.err.println("File write error occurred.");
			System.exit(0);
		}
 
 
 
	}
 
	// method outputItems
	public static void outputItems()
	{
		try
		{
		// Scanner for the input file
			Scanner inFile = new Scanner( new File("shoppinglist.txt"));
 
			System.out.println("\nYour shopping list contains:\n ");
 
			while( inFile.hasNextLine() )
 
				System.out.println( inFile.nextLine() );
 
			inFile.close();			// close the file
		}
		catch(IOException io)		// catch exception
		{
			// display the error message and exit program
			System.err.println("File read error occurred.");
			System.exit(0);
		}
 
	}
}

Open in new window

0
 
LVL 17

Assisted Solution

by:contactkarthi
contactkarthi earned 250 total points
ID: 20347319
your code is fine

if you open with a wordpad you can see as you expect.. if you want to see them in notepad also use System.getProperty("line.separator") instead of "\n"

two lines in you code should look like

outFile.write(keyboard.nextLine() + System.getProperty("line.separator"));
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
how to debug htl and js pages 8 54
program arguments vs VM arguments 4 28
What browser will run Java? 7 125
DTD and JAVA versions 1 29
Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question