Salvataggio conti correnti

This commit is contained in:
La Programmatrice Verde
2026-01-13 17:34:31 +01:00
parent fc34561c40
commit 567251a28e
4 changed files with 63 additions and 6 deletions

BIN
lib/jackson-core-2.20.1.jar Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -6,6 +6,7 @@ package mybank;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* *
@@ -32,7 +33,11 @@ public class ContoCorrente {
numeriContiCorrenti.add(numeroContoCorrente); numeriContiCorrenti.add(numeroContoCorrente);
} }
public static ArrayList<Integer> getNumeriContiCorrenti() { public static List<Integer> getNumeriContiCorrenti() {
return numeriContiCorrenti; return numeriContiCorrenti;
} }
public int getNumeroContoCorrente() {
return numeroContoCorrente;
}
} }

View File

@@ -4,6 +4,12 @@
*/ */
package mybank; package mybank;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
@@ -13,6 +19,9 @@ import java.util.Scanner;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;
/** /**
* *
* @author Verde * @author Verde
@@ -25,14 +34,15 @@ public class MyBank {
static Scanner sc = new Scanner(System.in); static Scanner sc = new Scanner(System.in);
static final String ERRORE_GENERICO = "Errore: opzione non valida."; static final String ERRORE_GENERICO = "Errore: opzione non valida.";
static final String PATH_CONTI = "./src/MyBank/conti/";
public static void main(String[] args) { public static void main(String[] args) {
int scelta = -1; int scelta = -1;
ArrayList<ContoCorrente> conti = new ArrayList<>(); ArrayList<ContoCorrente> conti = importaConti();
do { do {
System.out.println("Scegliere un'opzione:"); System.out.println("Scegliere un'opzione:");
System.out.println("1. Aggiungi conto corrente"); System.out.println("1. Aprire conto corrente");
System.out.println("2. "); System.out.println("2. ");
System.out.println("3. "); System.out.println("3. ");
System.out.println("4. "); System.out.println("4. ");
@@ -95,6 +105,29 @@ public class MyBank {
sc.nextLine(); sc.nextLine();
} }
static ArrayList<ContoCorrente> importaConti() {
ArrayList<ContoCorrente> conti = new ArrayList<>();
File percorsoConti = new File(PATH_CONTI);
ObjectMapper mapper = new ObjectMapper();
if (percorsoConti.exists() && percorsoConti.listFiles().length != 0) {
for (File conto : percorsoConti.listFiles()) {
StringBuilder sb = new StringBuilder();
if (conto.getName().substring(conto.getName().lastIndexOf(".")).equals("json")) {
try (BufferedReader bf = new BufferedReader(new FileReader(conto))) {
for (String rigaJSON : bf.readAllLines()) {
sb.append(rigaJSON);
}
conti.add(mapper.readValue(sb.toString(), ContoCorrente.class));
} catch (Exception _) {
System.out.println("Errore nella lettura del file di conto corrente.");
}
}
}
}
return conti;
}
static void aggiungiConto(ArrayList<ContoCorrente> conti) { static void aggiungiConto(ArrayList<ContoCorrente> conti) {
String nome; String nome;
String cognome; String cognome;
@@ -103,6 +136,7 @@ public class MyBank {
double saldoIniziale; double saldoIniziale;
int numeroContoCorrente; int numeroContoCorrente;
boolean error; boolean error;
ContoCorrente contoCorrente;
do { do {
error = false; error = false;
@@ -124,9 +158,15 @@ public class MyBank {
System.out.println("Errore: esiste già un conto corrente per questo codice fiscale, riprovare."); System.out.println("Errore: esiste già un conto corrente per questo codice fiscale, riprovare.");
pausa(); pausa();
error = true; error = true;
} } else {
else { contoCorrente = new ContoCorrente(nome, cognome, codiceFiscale, dataDiNascita, saldoIniziale,
conti.add(new ContoCorrente(nome, cognome, codiceFiscale, dataDiNascita, saldoIniziale, numeroContoCorrente)); numeroContoCorrente);
conti.add(contoCorrente);
File percorsoConti = new File(PATH_CONTI);
if (!percorsoConti.exists()) {
percorsoConti.mkdir();
}
salvaContoCorrente(contoCorrente);
} }
} while (error); } while (error);
} }
@@ -196,4 +236,16 @@ public class MyBank {
return saldoIniziale; return saldoIniziale;
} }
static void salvaContoCorrente(ContoCorrente conto) {
try (BufferedWriter bw = new BufferedWriter(
new FileWriter(PATH_CONTI + "conto_" + conto.getNumeroContoCorrente() + ".json"))) {
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
bw.write(ow.writeValueAsString(conto));
} catch (Exception _) {
System.out.println("Errore: impossibile salvare il conto corrente.");
}
}
} }