Java podstawy

Pobierz plik
Main
private static final Scanner scanner = new Scanner(System.in); private static final ZakupyInterface zakupyManager = new ZakupyManager(); private static final FileWriterInterface zapisDoPliku = new ZapisDoPliku<>(); public static void main(String[] args) { boolean running = true; while (running) { printMenu(); String choice = scanner.nextLine(); try { switch (choice) { case "1": dodajProdukt(); break; case "...": case "6": running = false; System.out.println("Program zakończony."); break; default: System.out.println("Nieprawidłowy wybór. Spróbuj ponownie."); } } catch (Exception e) { System.out.println("Wystąpił błąd: " + e.getMessage()); } } } private static void zapiszPlik() { ZapisDoPliku zapis = new ZapisDoPliku(); if (zakupyManager.ileProduktowNaLiscie() == 0) { System.out.println("Lista produktów jest pusta. Nie ma czego zapisać."); return; } System.out.print("\nPodaj ścieżkę do pliku do zapisu oraz nazw pliku z rozszerzeniem: "); String sciezka = scanner.nextLine(); // Rzutowanie listy produktów na listę PurchasedProduct @SuppressWarnings("unchecked") List produkty = (List) zakupyManager.listaZakupow(); zapis.zapiszListeDoPliku(produkty, sciezka); System.out.println("Trwa zapisywanie do pliku w tle...");
Zapis do pliku
public interface FileWriterInterface { void zapiszListeDoPliku(List listaProduktow, String sciezka); } public class ZapisDoPliku implements FileWriterInterface { @Override public void zapiszListeDoPliku(List listaProduktow, String sciezka) { List posortowaneProdukty = listaProduktow.stream() .sorted(Comparator.comparingDouble(Produkt::calkowitaCena).reversed()) .collect(Collectors.toList()); String katalogAplikacji = System.getProperty("user.dir"); String pelnaSciezka = Paths.get(katalogAplikacji, sciezka).toString(); new Thread(() -> { try (BufferedWriter writer = new BufferedWriter(new FileWriter(pelnaSciezka))) { for (Produkt produkt : posortowaneProdukty) { writer.write(produkt.toString()); writer.newLine(); } System.out.println("\nZakończono zapis do pliku: " + pelnaSciezka); } catch (IOException e) { System.err.println("Błąd podczas zapisu do pliku: " + e.getMessage()); } }).start(); } }
Optional
private static void szczegolyProduktu() { System.out.println("\n--- SZCZEGÓŁY PRODUKTU ---"); System.out.println("1. Wyszukaj po nazwie"); System.out.println("2. Wyszukaj po numerze"); System.out.print("Wybierz metodę wyszukiwania: "); String searchMethod = scanner.nextLine(); Optional produkt = Optional.empty(); if ("1".equals(searchMethod)) { System.out.print("Podaj nazwę produktu: "); String nazwa = scanner.nextLine(); produkt = zakupyManager.wyswietlProduktPoNazwie(nazwa); } else if ("2".equals(searchMethod)) { System.out.print("Podaj numer produktu: "); try { int index = Integer.parseInt(scanner.nextLine()) - 1; produkt = zakupyManager.wyswietlProduktPoNumerze(index); } catch (NumberFormatException e) { System.out.println("Nieprawidłowy numer produktu."); } } produkt.ifPresentOrElse( p -> System.out.println("\nSzczegóły produktu:\n" + p), () -> System.out.println("Produkt nie został znaleziony.") ); }
Linki
User Defined Custom Exception in Java Java Stream API - Sum List with Filter
Aby zmienić tytuł lub treść artykułu, edytuj odpowiednie fragmenty w pliku index.php