Friday, 19 August 2016

Help Fixing A Error. Exception in thread "main" java.util.InputMismatchException

Need Help Some With This Error And I Can't Figure It Out. The program is suppose to read the input and save it. Exception in thread "main" java.util.InputMismatchException
ÏÏ§Ï at java.util.Scanner.throwFor(Scanner.java:864)
ÏÏ§Ï at java.util.Scanner.next(Scanner.java:1485)
ÏÏ§Ï at java.util.Scanner.nextDouble(Scanner.java:2413)
ÏÏ§Ï at Driver.main(Driver.java:112)

ÏϧÏ



===================================

import java.io.*;
import java.util.Scanner;
public class Driver

{
public static void main(String[] args)


{
//local constants

//local variables
String fileName = "items.txt";
Scanner scanner = null;
ItemsList itemsList = new ItemsList(5);
int i = 0;
int choice;

boolean repeat = true;
String itemName;
double price;
int qty;

scanner=new Scanner(System.in);

//****************************************************************************
//open the file and catch the exception if file not found
try

{
//create an instance of scanner
scanner = new Scanner(new File(fileName));

//read file items until end of file
while(scanner.hasNext())
{
itemName = scanner.next();
price = scanner.nextDouble();
qty=scanner.nextInt();


//Add the OneItem object to the itemList
itemsList.addItem(new OneItem(itemName, price, qty));
i++;
}

//close the file object
scanner.close();
}
catch (FileNotFoundException e)

{
System.out.println(e.getMessage());
}
//Create an instance of Scanner class
scanner=new Scanner(System.in);

while(repeat)
{
//call menu
choice = menu();

switch(choice)
{
//Add an item to the itemsList
case 1:
System.out.println("Enter item name : ");
//read name
String name=scanner.nextLine();

System.out.println("Enter price : ");
//read string value and parse to double value

price = Double.parseDouble(scanner.nextLine());

System.out.println("Enter quantity : ");
qty=Integer.parseInt(scanner.nextLine());

//Add the OneItem to the itemsList
itemsList.addItem(new OneItem(name, price, qty));
break;

case 2:

//print the list
//print heading with specific formatter
System.out.printf("%-10s%-10s%-10s\n\n", "Item","Price","Quantity");
System.out.println(itemsList.toString());
break;

case 3:
//Terminate the program
System.out.println("Terminate the program.");


//set repeat to false
repeat=false;
break;

default:
System.out.println("Incorrect option is selected.");
break;
}
}
writeToFile(itemsList);

}




private static void writeToFile(ItemsList itemsList)

{

//Create a file name called items.txt

String filename="items.txt";
//Create a variable of Class PrintWriter
PrintWriter filewriter=null;

try
{
//create an instance of PrintWriter
filewriter=new PrintWriter(new File(filename));

//close the file writer

filewriter.close();
}
catch (IOException e)
{
System.out.println(e.getMessage());
}
}

private static int menu()



{
//Create an instance of Scanner class
Scanner keyboard=new Scanner(System.in);
System.out.println("Menu");
System.out.println("1. Add item");
System.out.println("2. Display items");
System.out.println("3. Exit");
System.out.println("Enter your choice");
int choice=Integer.parseInt(keyboard.nextLine());

return choice;



}
}//end Driver class

==========================================

public class OneItem

{
//declare a variables
private String name;
private double price;
private int quantity;

//default constructor
public OneItem()
{
name = "";

price = 0;
quantity = 0;
}
//parameter constructor
public OneItem(String name, double price, int quantity)
{
this.name = name;
this.price = price;
this.quantity = quantity;
}


//toString
public String toString()
{
return String.format("%-10s%-10.2f%-10d\n", name,price,quantity);
}
}//end of the OneItem class


===========================




public class ItemsList
{
//declare variables
private OneItem items[];
private int size;
private int count;

//constructor to set items, size and count to zero
public ItemsList()

{
items = null;
size = 0;
count = 0;
}
//Parameter constructor
public ItemsList(int size)
{
items = new OneItem[size];


for (int i = 0; i < items.length; i++)
{
items[i] = new OneItem();
}

this.size = size;
count = 0;
}
//Add OneItem to the itemlist
public void addItem(OneItem item)

{
if(items.length == count)
{
resize();
items[count] = item;
count++;
}
else
{
items[count] = item;

count++;
}
}

//Resize
private void resize()
{
int oldsize = size;
count = oldsize;
int newsize = 2 * this.size;

size = newsize;

OneItem[] tempList = new OneItem[size];

for (int i = 0; i < oldsize; i++)
tempList[i] = items[i];


items = new OneItem[size];
items = tempList;

}

//getSize
public int getSize()
{
return count;
}

//toString
public String toString()

{
String description = "";
for (int i = 0; i {
description += items[i].toString();
}

return description;
}
}

No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...