Raizekas

Untitled

Mar 3rd, 2021
692
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package org.datareading;
  2.  
  3. import java.io.*;
  4. import java.lang.reflect.Array;
  5. import java.util.ArrayList;
  6. import java.util.Scanner;
  7.  
  8. public class NuskaitymasIsFailo
  9. {
  10.     public static void main(String[] args)
  11.     {
  12.         // Pavyzdziai kitu erroru
  13.       /*  ArrayList<String> tempArray = new ArrayList<>();
  14.         int x = 4;
  15.         while (x < 6)
  16.         {
  17.             tempArray.add("sasdasdasd");
  18.         }
  19.  
  20.         int[] masyvas = {1, 2, 3, 4, 5};
  21.         for (int i = 0; i < 6; i++)
  22.         {
  23.             System.out.println(masyvas[i]);
  24.         }*/
  25.  
  26.  
  27.         ArrayList<String> katalogoEilutes = new ArrayList<>();
  28.         ArrayList<String> prekiuPav = new ArrayList<>();
  29.         ArrayList<Double> prekiuKaina = new ArrayList<>();
  30.         ArrayList<Integer> prekiuKiekis = new ArrayList<>();
  31.  
  32.         String ieskomaPreke;
  33.         ArrayList<Integer> ieskomuPrekiuIndeksai = new ArrayList<>();
  34.  
  35.         boolean arIsvestiNesanciasPrekes;
  36.         String arIsvestiNesanciasPrekesStr;
  37.  
  38.         try
  39.         {
  40.             nuskaitymasIsFailo(katalogoEilutes);
  41.         }
  42.         catch (FileNotFoundException e)
  43.         {
  44.             System.out.println("Nėra tokio failo");
  45.             e.printStackTrace();
  46.         }
  47.         catch (IOException e)
  48.         {
  49.             System.out.println("Nepavyko nuskaityti iš failo. Bandykite vėliau");
  50.             e.printStackTrace();
  51.         }
  52.  
  53.         System.out.println(katalogoEilutes.toString());
  54.  
  55.         isskaidytiEilutes(prekiuPav, prekiuKaina, prekiuKiekis, katalogoEilutes);
  56.  
  57.         System.out.println(prekiuPav.toString());
  58.         System.out.println(prekiuKaina.toString());
  59.         System.out.println(prekiuKiekis.toString());
  60.  
  61.  
  62.         System.out.println("Įveskite prekės pavadinimą, kurios ieškote: ");
  63.         ieskomaPreke = nuskaitytiVartotojoPaieska();
  64.        // System.out.println(ieskomaPreke);
  65.  
  66.         System.out.println("Ar norite, jog išvestų ir sandėlyje nesančias prekes ar tik esančias (rinktis true / false): ");
  67.         arIsvestiNesanciasPrekesStr = nuskaitytiVartotojoPaieska();
  68.         arIsvestiNesanciasPrekes = Boolean.parseBoolean(arIsvestiNesanciasPrekesStr);
  69.  
  70.  
  71.         rastiPrekes(ieskomaPreke, prekiuPav, ieskomuPrekiuIndeksai);
  72.         isvestiIeskomasPrekes(ieskomuPrekiuIndeksai, prekiuPav, prekiuKaina, prekiuKiekis, arIsvestiNesanciasPrekes);
  73.     }
  74.  
  75.     /**
  76.      * Metodas nuskaito duomenis iš tekstinio failo "prekiu_katalogas.csv" ir sudeda į ArrayList struktūrą eilutes
  77.      * @param katalogoEilutes   - ArrayList, į kurį dėsime nuskaitytas eilutes iš tekstinio failo.
  78.      * @throws IOException      - Vienas IOException būtų FileNotFound, jį gali išmesti kuriant failą, kai jo neras.
  79.      *                            Kitas IOException būtų kai bando nuskaityti, tai tiesiog general IOException, jei kas nepavyktų su nuskaitymu
  80.      */
  81.     public static void nuskaitymasIsFailo(ArrayList<String> katalogoEilutes) throws IOException
  82.     {
  83.         File prekiuKatalogoFailas = new File("prekiu_katalogas.csv");
  84.         FileReader failoReaderioObjektas;
  85.         BufferedReader failoSkaitytuvas;
  86.  
  87.         failoReaderioObjektas = new FileReader(prekiuKatalogoFailas);
  88.         failoSkaitytuvas = new BufferedReader(failoReaderioObjektas);
  89.  
  90.         String pirmaEilute = failoSkaitytuvas.readLine();
  91.  
  92.         String eilute;
  93.         eilute = failoSkaitytuvas.readLine();
  94.  
  95.         while (eilute != null)
  96.         {
  97.             katalogoEilutes.add(eilute);
  98.             eilute = failoSkaitytuvas.readLine();
  99.         }
  100.     }
  101.  
  102.  
  103.     /**
  104.      * Išskaido nuskaitytas eilutes iš tekstinio failo į atskirus ArrayList
  105.      * @param prekiuPav - prekių pavadinimai (pirmasis eilutės kintamasis)
  106.      * @param prekiuKaina   - prekių kainos (antrasis eilutės kintamasis)
  107.      * @param prekiuKiekis  - prekių kiekis (trečiasis eilutės kintamasis)
  108.      * @param katalogoEilutes   - tekstinio failo nuskaitytos eilutės
  109.      */
  110.     public static void isskaidytiEilutes(ArrayList<String> prekiuPav, ArrayList<Double> prekiuKaina, ArrayList<Integer> prekiuKiekis, ArrayList<String> katalogoEilutes)
  111.     {
  112.         for (int i = 0; i < katalogoEilutes.size(); i++)
  113.         {
  114.             String[] isskaidytaEilute;
  115.             isskaidytaEilute = katalogoEilutes.get(i).split(",");
  116.  
  117.             String laikinasPav = isskaidytaEilute[0];
  118.             String laikinaKainaStr = isskaidytaEilute[1];
  119.             String laikinasKiekisStr = isskaidytaEilute[2];
  120.  
  121.             double laikinaKaina = Double.parseDouble(laikinaKainaStr);
  122.             int laikinasKiekis = Integer.parseInt(laikinasKiekisStr);
  123.  
  124.             prekiuPav.add(laikinasPav);
  125.             prekiuKaina.add(laikinaKaina);
  126.             prekiuKiekis.add(laikinasKiekis);
  127.         }
  128.     }
  129.  
  130.  
  131.  
  132.     public static String nuskaitytiVartotojoPaieska()
  133.     {
  134.         String ieskomasZodis;
  135.         Scanner konsolesSkaitytuvas = new Scanner(System.in);
  136.         ieskomasZodis = konsolesSkaitytuvas.next();
  137.         return ieskomasZodis;
  138.     }
  139.  
  140.  
  141.     public static void rastiPrekes(String ieskomaPreke, ArrayList<String> prekiuPav, ArrayList<Integer> rastuPrekiuIndeksai)
  142.     {
  143.         for (int i = 0; i < prekiuPav.size(); i++)
  144.         {
  145.             if (prekiuPav.get(i).equals(ieskomaPreke))
  146.             {
  147.                 rastuPrekiuIndeksai.add(i);
  148.             }
  149.         }
  150.  
  151.     }
  152.  
  153.  
  154.     /**
  155.      *
  156.      * @param prekiuIndeksai
  157.      * @param prekiuPav
  158.      * @param prekiuKaina
  159.      * @param prekiuKiekis
  160.      */
  161.     public static void isvestiIeskomasPrekes(ArrayList<Integer> prekiuIndeksai, ArrayList<String> prekiuPav, ArrayList<Double> prekiuKaina, ArrayList<Integer> prekiuKiekis)
  162.     {
  163.         for (int i = 0; i < prekiuIndeksai.size(); i++)
  164.         {
  165.             int dabartinesPrekesIndeksas = prekiuIndeksai.get(i);
  166.             System.out.println("Prekės pavadinimas: " + prekiuPav.get(dabartinesPrekesIndeksas));
  167.             System.out.println("Prekės kaina: " + prekiuKaina.get(dabartinesPrekesIndeksas));
  168.             System.out.println("Prekės kiekis sandėlyje: " + prekiuKiekis.get(dabartinesPrekesIndeksas));
  169.             System.out.println("--------------------------------------");
  170.         }
  171.     }
  172.  
  173.     /**
  174.      * Overloadintas metodas išvedantis ieškomas prekes
  175.      * @param prekiuIndeksai    - ieškomų prekių indeksai arraylist
  176.      * @param prekiuPav - prekių pavadinimai arraylist
  177.      * @param prekiuKaina   - prekių kainos arraylist
  178.      * @param prekiuKiekis  - prekių kiekių arraylist
  179.      * @param arIsvestiNesanciasPrekes - ar išvesti prekes, kurių kiekis sandėlyje yra nulis, ar neišvesti (true - išveda, false - neišveda)
  180.      */
  181.     public static void isvestiIeskomasPrekes(ArrayList<Integer> prekiuIndeksai, ArrayList<String> prekiuPav, ArrayList<Double> prekiuKaina, ArrayList<Integer> prekiuKiekis, boolean arIsvestiNesanciasPrekes)
  182.     {
  183.         for (int i = 0; i < prekiuIndeksai.size(); i++)
  184.         {
  185.             if (arIsvestiNesanciasPrekes)
  186.             {
  187.                 int dabartinesPrekesIndeksas = prekiuIndeksai.get(i);
  188.                 System.out.println("Prekės pavadinimas: " + prekiuPav.get(dabartinesPrekesIndeksas));
  189.                 System.out.println("Prekės kaina: " + prekiuKaina.get(dabartinesPrekesIndeksas));
  190.                 System.out.println("Prekės kiekis sandėlyje: " + prekiuKiekis.get(dabartinesPrekesIndeksas));
  191.                 System.out.println("--------------------------------------");
  192.             }
  193.             else
  194.             {
  195.                 int dabartinesPrekesIndeksas = prekiuIndeksai.get(i);
  196.                 int dabartinesPrekesKiekis = prekiuKiekis.get(dabartinesPrekesIndeksas);
  197.                 if (dabartinesPrekesKiekis > 0)
  198.                 {
  199.                     System.out.println("Prekės pavadinimas: " + prekiuPav.get(dabartinesPrekesIndeksas));
  200.                     System.out.println("Prekės kaina: " + prekiuKaina.get(dabartinesPrekesIndeksas));
  201.                     System.out.println("Prekės kiekis sandėlyje: " + prekiuKiekis.get(dabartinesPrekesIndeksas));
  202.                     System.out.println("--------------------------------------");
  203.                 }
  204.             }
  205.         }
  206.     }
  207. }
  208.  
RAW Paste Data