public static void makeSandwich()
{
System.out.println("Enter First Name: ");
String name = Scanner.next();
double price = sandwich.getBreadPrice() + sandwich.getMeatPrice() + sandwich.getVegPrice();
sandwich.setPrice(price);
NumberFormat currency = NumberFormat.getCurrencyInstance();
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
System.out.println(dateFormat.format(date) + " " + name + " " + sandwich.getBread() + " " + sandwich.getMeat() + " " + sandwich.getVegetables() + " " + currency.format(sandwich.getPrice()));
OrderLine.writeOrderLine(name, sandwich.getBread(), sandwich.getMeat(), sandwich.getVegetables(), sandwich.getPrice());
}
and heres my code for the orderline.app
public class OrderLine{
private static Sandwich sandwich = null;
public static void writeOrderLine(String name, String bread, String meat, String veg, double price)
{
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
try
{
File productsFile = new File("orderline.txt");
PrintWriter out = new PrintWriter(
new BufferedWriter(
new FileWriter(productsFile, true)));
out.print(dateFormat.format(date) + "\t");
out.print(name + "\t");
out.print(sandwich.getBread() + "\t");
out.print(sandwich.getMeat() + "\t");
out.print(sandwich.getVegetables() + "\t");
out.println(sandwich.getPrice() + "\t");
out.close();
}
catch (IOException e)
{
System.out.println(e);
}
}
}
It doesn’t print at all, but when I add this line “sandwich = new Sandwich()” before the dateformat in the orderline.java it works but it ends up giving me empty strings since i guess i’m creating a new sandwich. How can I call the sandwich I already made?
In the writeOrderLine function you have not initialized sandwich but passing all the attribute of sandwich either you could do it the following way
or you could do it this way
calling like this
and changing the function as