Commit 4ec08742 by Patryk Czarnik

Sprzedaż: utworzenie rekordu oraz czytanie CSV

parent c30990cc
package sprzedaz;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
public class ObslugaCsvTransakcji {
public static List<Transakcja> wczytaj() {
return wczytaj("pliki/sprzedaz.csv");
}
public static List<Transakcja> wczytaj(String sciezka) {
return wczytaj(new File(sciezka));
}
public static List<Transakcja> wczytaj(File plik) {
List<Transakcja> lista = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader(plik))) {
reader.readLine();
String linia;
while((linia = reader.readLine()) != null) {
String[] t = linia.split(",", -1);
Transakcja rekord = new Transakcja(LocalDate.parse(t[0]),
t[1], t[2], t[3],t[4],
new BigDecimal(t[5]), Integer.parseInt(t[6]));
lista.add(rekord);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
return lista;
}
}
package sprzedaz;
import java.util.List;
public class P0_WypiszObiekty {
public static void main(String[] args) {
List<Transakcja> transakcje = ObslugaCsvTransakcji.wczytaj();
System.out.println("Liczba transakcji: " + transakcje.size());
for(Transakcja transakcja : transakcje) {
System.out.println(transakcja);
}
}
}
package sprzedaz;
import java.math.BigDecimal;
import java.time.LocalDate;
/* Record to taka specjalna wersja klasy (podobnie jak enum jest specjalną wersją klasy w języku Java),
która zawiera rzeczy generowane automatycnzie na podstawie parametrów podanych w nawiasach.
Automatycznie tworzone są:
- pola private final
- konstruktor z takimi parametrami
- metody dostępowe służące do odczytu. Nie mają one w nazwie "get", tylko nazywają się tak samo jak pola
- toString, equals i hashCode (przypominające standardowe implementacje generowane przez IDE)
*/
public record Transakcja(
LocalDate data,
String miasto,
String sklep,
String kategoria,
String towar,
BigDecimal cena,
int sztuk) {
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment