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.")
);
}
Aby zmienić tytuł lub treść artykułu, edytuj odpowiednie fragmenty w pliku index.php