Given a text file containing the availability of food items, write a program that reads the information from the text file and outputs the available food items. The program first reads the name of the text file from the user. The program then reads the text file, stores the information into four separate arrays, and outputs the available food items in the following format: name (category) -- description Assume the text file contains the category, name, description, and availability of at least one food item, separated by a tab character. Ex: If the input of the program is: food.txt and the contents of food.txt are: Sandwiches Ham sandwich Classic ham sandwich Available Sandwiches Chicken salad sandwich Chicken salad sandwich Not available Sandwiches Cheeseburger Classic cheeseburger Not available Salads Caesar salad Chunks of romaine heart lettuce dressed with lemon juice Available Salads Asian salad Mixed greens with ginger dressing, sprinkled with sesame Not available Drinks Water 16oz bottled water Available Drinks Coca-Cola 16oz Coca-Cola Not available Mexican food Chicken tacos Grilled chicken breast in freshly made tortillas Not available Mexican food Beef tacos Ground beef in freshly made tortillas Available Vegetarian Avocado sandwich Sliced avocado with fruity spread Not available the output of the program is: Ham sandwich (Sandwiches) -- Classic ham sandwich Caesar salad (Salads) -- Chunks of romaine heart lettuce dressed with lemon juice Water (Drinks) -- 16oz bottled water Beef tacos (Mexican food) -- Ground beef in freshly made tortillas import java.util.Scanner; import java.io.File; import java.io.IOException; public class LabProgram { public static void main(String[] args) throws IOException { Scanner scnr = new Scanner(System.in); // Prompt the user for the input file name System.out.print("Enter the name of the text file: "); String fileName = scnr.nextLine(); // Open the file File file = new File(fileName); Scanner fileScanner = new Scanner(file); // Arrays to store category, name, description, and availability String[] categories = new String[100]; // Adjust the size as needed String[] names = new String[100]; String[] descriptions = new String[100]; String[] availability = new String[100]; int itemCount = 0; // Counter to keep track of the number of items // Read the file and store information in arrays while (fileScanner.hasNextLine()) { String line = fileScanner.nextLine(); String[] parts = line.split("\\s{2,}"); // Split on 2 or more spaces if (parts.length == 4) { categories[itemCount] = parts[0].trim(); names[itemCount] = parts[1].trim(); descriptions[itemCount] = parts[2].trim(); availability[itemCount] = parts[3].trim(); itemCount++; } } // Output available food items boolean foundAvailable = false; // Flag to check if any available items were found for (int i = 0; i < itemCount; i++) { if (availability[i].equalsIgnoreCase("Available")) { System.out.println(names[i] + " (" + categories[i] + ") -- " + descriptions[i]); foundAvailable = true; } } // Check if no available items were found if (!foundAvailable) { System.out.println("No available food items found."); } // Close the file and scanner fileScanner.close(); scnr.close(); } }
Given a text file containing the availability of food items, write a program that reads the information from the text file and outputs the available food items. The program first reads the name of the text file from the user. The program then reads the text file, stores the information into four separate arrays, and outputs the available food items in the following format: name (category) -- description
Assume the text file contains the category, name, description, and availability of at least one food item, separated by a tab character.
Ex: If the input of the program is:
food.txt
and the contents of food.txt are:
Sandwiches Ham sandwich Classic ham sandwich Available Sandwiches Chicken salad sandwich Chicken salad sandwich Not available Sandwiches Cheeseburger Classic cheeseburger Not available Salads Caesar salad Chunks of romaine heart lettuce dressed with lemon juice Available Salads Asian salad Mixed greens with ginger dressing, sprinkled with sesame Not available Drinks Water 16oz bottled water Available Drinks Coca-Cola 16oz Coca-Cola Not available Mexican food Chicken tacos Grilled chicken breast in freshly made tortillas Not available Mexican food Beef tacos Ground beef in freshly made tortillas Available Vegetarian Avocado sandwich Sliced avocado with fruity spread Not available
the output of the program is:
Ham sandwich (Sandwiches) -- Classic ham sandwich Caesar salad (Salads) -- Chunks of romaine heart lettuce dressed with lemon juice Water (Drinks) -- 16oz bottled water Beef tacos (Mexican food) -- Ground beef in freshly made tortillas
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
public class LabProgram {
public static void main(String[] args) throws IOException {
Scanner scnr = new Scanner(System.in);
// Prompt the user for the input file name
System.out.print("Enter the name of the text file: ");
String fileName = scnr.nextLine();
// Open the file
File file = new File(fileName);
Scanner fileScanner = new Scanner(file);
// Arrays to store category, name, description, and availability
String[] categories = new String[100]; // Adjust the size as needed
String[] names = new String[100];
String[] descriptions = new String[100];
String[] availability = new String[100];
int itemCount = 0; // Counter to keep track of the number of items
// Read the file and store information in arrays
while (fileScanner.hasNextLine()) {
String line = fileScanner.nextLine();
String[] parts = line.split("\\s{2,}"); // Split on 2 or more spaces
if (parts.length == 4) {
categories[itemCount] = parts[0].trim();
names[itemCount] = parts[1].trim();
descriptions[itemCount] = parts[2].trim();
availability[itemCount] = parts[3].trim();
itemCount++;
}
}
// Output available food items
boolean foundAvailable = false; // Flag to check if any available items were found
for (int i = 0; i < itemCount; i++) {
if (availability[i].equalsIgnoreCase("Available")) {
System.out.println(names[i] + " (" + categories[i] + ") -- " + descriptions[i]);
foundAvailable = true;
}
}
// Check if no available items were found
if (!foundAvailable) {
System.out.println("No available food items found.");
}
// Close the file and scanner
fileScanner.close();
scnr.close();
}
}
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 1 images