diff --git a/src/mybank/ContoCorrente.java b/src/mybank/ContoCorrente.java index ba089aa..acaf4e4 100644 --- a/src/mybank/ContoCorrente.java +++ b/src/mybank/ContoCorrente.java @@ -33,6 +33,7 @@ public class ContoCorrente { this.saldo = saldo; this.numeroContoCorrente = numeroContoCorrente; numeriContiCorrenti.add(numeroContoCorrente); + MyBank.log("Apertura del conto con saldo iniziale di " + this.saldo, numeroContoCorrente); } public static List getNumeriContiCorrenti() { @@ -45,14 +46,17 @@ public class ContoCorrente { public void versa(double quantita){ this.saldo += quantita; + MyBank.log("Versamento di " + quantita + " effettuato con successo.\nSaldo corrente: " + this.saldo, this.numeroContoCorrente); } public void preleva(double quantita) throws IllegalArgumentException{ if (quantita >= this.saldo) { + MyBank.log("Tentato prelievo di " + quantita + " fallito per superamento saldo.\nSaldo corrente: " + this.saldo, this.numeroContoCorrente); throw new IllegalArgumentException("La quantità desiderata eccede il saldo corrente."); } else { this.saldo -= quantita; + MyBank.log("Prelievo di " + quantita + " effettuato con successo.\nSaldo corrente: " + this.saldo, this.numeroContoCorrente); } } } \ No newline at end of file diff --git a/src/mybank/MyBank.java b/src/mybank/MyBank.java index 01fcec9..914a27a 100644 --- a/src/mybank/MyBank.java +++ b/src/mybank/MyBank.java @@ -9,7 +9,7 @@ import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; -import java.io.FilenameFilter; +import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -82,7 +82,7 @@ public class MyBank { if (conti.isEmpty()) { System.out.println(ERRORE_CONTI_VUOTO); } else { - + stampaLog(conti); } pausa(); break; @@ -241,7 +241,7 @@ public class MyBank { new FileWriter(PATH_CONTI + "conto_" + conto.getNumeroContoCorrente() + ".json"))) { ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); bw.write(ow.writeValueAsString(conto)); - } catch (Exception _) { + } catch (IOException _) { System.out.println("Errore: impossibile salvare il conto corrente."); } } @@ -292,4 +292,29 @@ public class MyBank { } while (error); return contoCorrente; } + + static void log(String messaggio, int numeroContoCorrente) { + StringBuilder sb = new StringBuilder(); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.sss dd/MM/yyyy"); + try (BufferedWriter bw = new BufferedWriter( + new FileWriter(PATH_CONTI + "movimenti_" + numeroContoCorrente + ".txt"))) { + sb.append("["); + sb.append(sdf.format(new Date())); + sb.append("] "); + sb.append(messaggio); + sb.append("\n"); + + bw.write(sb.toString()); + } catch (IOException _) { + System.out.println("Errore nella scrittura del movimento."); + } + } + + static void stampaLog(ArrayList conti) { + try (BufferedReader br = new BufferedReader(new FileReader(PATH_CONTI + "movimenti_" + selezionaConto(conti) + ".txt"))) { + System.out.println(br.readAllAsString()); + } catch (IOException _) { + System.out.println("Errore nella lettura dei movimenti."); + } + } }