Создание связанного списка из содержимого файла? - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь создать список покупок на основе ингредиентов и инвентаря.Предполагается, что программа запрашивает у пользователя файл с необходимыми ингредиентами (файл плана питания), затем запрашивает файл инвентаря ингредиентов, а затем создает файл, который должен распечатать ингредиенты.необходимо (поэтому ингредиенты, которых нет в файле инвентаризации, но перечислены в файле плана питания). Таким образом, в каждом файле должно быть количество и единица питания, разделенные ровно одним пробелом, и должно быть сообщение об ошибке, если возникает проблема встрока в файле. В любом случае мне просто интересно, как я могу сделать это с помощью связанных списков? Как я могу создать связанный список на основе содержимого файла, чтобы я мог распечатать список покупок в другой файл для пользователя?мой код до сих пор:

 public static void main (String [] args)
{

    Scanner input = new Scanner(System.in);
    String mealList, inventoryList, groceryList;

    System.out.println("Enter meal plan file name :");
    mealList = input.nextLine().trim();

    try
    {
        File inp1 = new File(mealList + ".txt");
        Scanner inputfile = new Scanner(inp1);
    }
    catch (FileNotFoundException exception)
    {
        System.out.println("File not found. Please re-enter the file name.");
    }
    catch (IOException exception)
    { 
        System.out.println(exception);
    }

    System.out.println("Enter inventory file name :");
    inventoryList = input.nextLine().trim();
    try
    {
        File inp2 = new File(inventoryList + ".txt");
        Scanner inputfile2 = new Scanner(inp2);
    }
    catch (FileNotFoundException exception)
    {
        System.out.println("File not found. Please re-enter the file name.");
    }
    catch (IOException exception)
    { 
        System.out.println(exception);
    }

    System.out.println("Enter name of grocery list file to create :");
    groceryList = input.nextLine().trim();

    try
    {
        if (groceryList.length()<=30 && groceryList.length()>=1)
        {

            groceryList = groceryList + ".txt";

            File file = new File(groceryList);
            file.createNewFile();
        }
        else
        {
            System.out.println("Wrong length");
        }
    }
    catch (IOException exception)
    {
        System.out.println("Invalid Input. Please re-enter the file name");
    }

Это содержимое для обоих файлов:

foods.txt

1 хлеб

2 яйца

1 апельсиновый сок

2 хлеба

1 арахисовое масло

1 джем

1 яблоко

1 спагетти

1 помидорсоус

1 хлеб

2 яйца

1 апельсиновый сок

2 хлеба

1 арахисовое масло

1джем

1 персик

1 курица

1 рис

1 зеленая фасоль

inventory.txt

1томатный соус

2 персика

1 яблоко

3 хлеба

1 варенье

1 груша

1 Ответ

0 голосов
/ 10 февраля 2019

Ниже программа демонстрирует, как содержимое файла может быть добавлено в LinkedList.

import java.io.*;
import java.util.*;

public class UsingLinkedList
{
  public static void main(String[] args)
  {
    System.out.println("Enter meal plan file name :");
    Scanner input = new Scanner(System.in);
    String mealList = input.nextLine().trim();

    List<String> meals = new LinkedList<>();
    try
    {
      File inp1 = new File(mealList + ".txt");
      Scanner inputfile = new Scanner(inp1);
      while (inputfile.hasNextLine())
      {
        meals.add(inputfile.nextLine());
      }
      System.out.println(meals);
    }
    catch (FileNotFoundException exception)
    {
      exception.printStackTrace();
      System.out.println("File not found. Please re-enter the file name.");
    }
  }
}

Для содержимого входного файла ниже,

Meal plan 1
Meal plan 2
Meal plan 3
Meal plan 4

Вывод:

Enter meal plan file name :
MealPlans
[Meal plan 1, Meal plan 2, Meal plan 3, Meal plan 4]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...