19/01/20 16:38
Lucym80
Salve a tutti,
è da poco che mi sto avvicinando al mondo java e sto facendo un piccolo corso, ho però dificoltà nel passare dagli Array alle collection, nel senso che ho provato a seguire le istruzioni e il programma non dà errori e riesco anche ad eseguirlo, ma il tasto 1 non va, credo perché non dichiaro bene le collection.
Potete aiutarmi a capire?
Questo è il codice.
Prima classe.
[CODE]
package archivio2;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class Artista implements Serializable {
private String nome;
private String cognome;
private String dataDiNascita;
private String biografia;
public Artista() {
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCognome() {
return cognome;
}
public void setCognome(String cognome) {
this.cognome = cognome;
}
public String getDataDiNascita() {
return dataDiNascita;
}
public void setDataDiNascita(String dataDiNascita) {
this.dataDiNascita = dataDiNascita;
}
public String getBiografia() {
return biografia;
}
public void setBiografia(String biografia) {
this.biografia = biografia;
}
String fileName = "applicazione archivio.dat";
Artista a;
public void salva () {
FileOutputStream memoria=null;
ObjectOutputStream oggetto=null;
try {
memoria = new FileOutputStream(fileName);
oggetto= new ObjectOutputStream(memoria);
oggetto.writeObject(a);
System.out.println("archivio aggiornato!"
}
catch (FileNotFoundException e) {
System.out.println("Attenzione! Errore nel caricamento dei dati, si prega di riprovare"
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
} catch (IOException e) {
System.out.println("Errore di lettura nel caricamento del file."
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
} catch (Exception e) {
System.out.println("Errore generico nel caricamento del file."
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
}
finally {
try {
if (oggetto != null) oggetto.close();
if(memoria!=null) memoria.close();
}
catch (IOException e) {
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
}
}
}
public void caricamento() {
FileInputStream file=null;
ObjectInputStream contenuto=null;
try {
file=new FileInputStream(fileName);
contenuto=new ObjectInputStream(file);
a=(Artista)contenuto.readObject();
}
catch (FileNotFoundException e){
System.out.println("Si è verificato un errore nel caricamento del file, probabilmente il file non esiste"
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
} catch (IOException e) {
System.out.println("Errore di lettura nel caricamento del file."
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
} catch (Exception e) {
System.out.println("Errore generico nel caricamento dei dati."
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
}
finally {
try {
if(contenuto!=null)contenuto.close();
if(file!=null)file.close();
}
catch (Exception e) {
System.out.println("Errore dettagliato: " + e.getMessage());
}
}
}
}
[/CODE]
Seconda classe.
[CODE]
package archivio2;
import java.util.Scanner;
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
public class DatiArtista implements Serializable {
private Artista artista= new Artista();
private List <Artista> aList=new ArrayList<Artista>();
public void setAList(List <Artista> aList) {
this.aList=aList;
}
public List <Artista> getAList() {
return aList;
}
Scanner scanner = new Scanner (System.in);
public DatiArtista() {
}
public void creaArtisti () {
String inserisci =null;
int size=aList.size();
for (int i = 0; i< size; i++) {
if(artista != null && i== size) {
System.out.println("Attenzione! l'archivio risulta pieno"
}
else if (artista == null) {
aList.add(artista);
System.out.println("Inserisci nome"
inserisci =scanner.nextLine();
System.out.println("Inserisci cognome"
inserisci = scanner.nextLine();
System.out.println("Inserisci data di nascita."
inserisci = scanner.nextLine();
System.out.println("Inserisci biografia"
inserisci = scanner.nextLine();
break;
}
}
}
private void nuovoArtista() {
// TODO Auto-generated method stub
}
public void mostraArtisti() {
int size=aList.size();
for (int i = 0; i <size; i++) {
if (artista != null) {
System.out.println(((Artista) artista).getNome() + " " + ((Artista) artista).getCognome() +" " + ((Artista) artista).getDataDiNascita() +" " + ((Artista) artista).getBiografia());
}
}
}
public void cercaArtista() {
String scelta = null;
String cercaNome;
String cercaCognome;
int trova=0;
System.out.println("Premi n per cercare per nome, oppure c per cercare per cognome"
scelta = scanner.nextLine();
while(!scelta.equals("n" && (!scelta.equals("c")){
System.out.println("Attenzione! Carattere non valido! riprova. Digita n per cercare per nome oppure c per cercare il cognome"
scelta =scanner.nextLine();
}
if (scelta.equals("n") {
System.out.println("Inserisci il nome da cercare"
cercaNome = scanner.nextLine();
int size=aList.size();
for (int i=0;i<size;i++) {
if (artista == null) {
continue;
}
else if (cercaNome.equalsIgnoreCase(((Artista) artista).getNome())) {
System.out.println("Risultati trovati " + ((Artista) artista).getNome() +" " + ((Artista) artista).getCognome() +" " + ((Artista) artista).getDataDiNascita() +" " + ((Artista) artista).getBiografia());
trova ++;
}
}
}
if (scelta.equals("c") {
System.out.println("Inserisci il cognome da cercare"
cercaCognome = scanner.nextLine();
int size=aList.size();
for (int i=0;i<size;i++) {
if (artista == null) {
continue;
}
if (cercaCognome.equalsIgnoreCase(((Artista) artista).getCognome())) {
System.out.println("Risultati trovati " + ((Artista) artista).getCognome() +" " + ((Artista) artista).getNome() +" " + ((Artista) artista).getDataDiNascita() +" " + ((Artista) artista).getBiografia());
trova ++;
}
}
}
if (trova == 0) {
System.out.println("Risultato non trovato!"
}
}
}
[/CODE]
Terza classe.
[CODE]
package archivio2;
import java.util.Scanner;
import java.io.Serializable;
public class ApplicazioneArchivio implements Serializable{
public static void main(String[] args) {
DatiArtista datiartista = new DatiArtista();
int scelta=0;
Scanner scanner = new Scanner(System.in);
System.out.println("Benvenuti nell'archivio degli artisti!"
while (scelta>=0) {
System.out.println("Digita 1 per inserire un artista, 2 per visualizzare l'elenco completo degli artisti, 3 per cercare un artista oppure 4 per uscire"
scelta = scanner.nextInt();
switch (scelta) {
case 1:
datiartista.creaArtisti();
break;
case 2:
datiartista.mostraArtisti ();
break;
case 3:
datiartista.cercaArtista();
break;
case 4:
System.out.println("Ciao e alla prossima!"
scelta = -1;
break;
default:
System.out.println("Inserimento non valido!"
scelta=0;
}
}
}
}
[/CODE]
Il salvataggio dei file dovrebbe funzionare, ma non so ancora se funziona il caricamento.
Grazie a chi vorrà aiutarmi!
è da poco che mi sto avvicinando al mondo java e sto facendo un piccolo corso, ho però dificoltà nel passare dagli Array alle collection, nel senso che ho provato a seguire le istruzioni e il programma non dà errori e riesco anche ad eseguirlo, ma il tasto 1 non va, credo perché non dichiaro bene le collection.
Potete aiutarmi a capire?
Questo è il codice.
Prima classe.
[CODE]
package archivio2;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class Artista implements Serializable {
private String nome;
private String cognome;
private String dataDiNascita;
private String biografia;
public Artista() {
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCognome() {
return cognome;
}
public void setCognome(String cognome) {
this.cognome = cognome;
}
public String getDataDiNascita() {
return dataDiNascita;
}
public void setDataDiNascita(String dataDiNascita) {
this.dataDiNascita = dataDiNascita;
}
public String getBiografia() {
return biografia;
}
public void setBiografia(String biografia) {
this.biografia = biografia;
}
String fileName = "applicazione archivio.dat";
Artista a;
public void salva () {
FileOutputStream memoria=null;
ObjectOutputStream oggetto=null;
try {
memoria = new FileOutputStream(fileName);
oggetto= new ObjectOutputStream(memoria);
oggetto.writeObject(a);
System.out.println("archivio aggiornato!"
}
catch (FileNotFoundException e) {
System.out.println("Attenzione! Errore nel caricamento dei dati, si prega di riprovare"
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
} catch (IOException e) {
System.out.println("Errore di lettura nel caricamento del file."
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
} catch (Exception e) {
System.out.println("Errore generico nel caricamento del file."
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
}
finally {
try {
if (oggetto != null) oggetto.close();
if(memoria!=null) memoria.close();
}
catch (IOException e) {
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
}
}
}
public void caricamento() {
FileInputStream file=null;
ObjectInputStream contenuto=null;
try {
file=new FileInputStream(fileName);
contenuto=new ObjectInputStream(file);
a=(Artista)contenuto.readObject();
}
catch (FileNotFoundException e){
System.out.println("Si è verificato un errore nel caricamento del file, probabilmente il file non esiste"
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
} catch (IOException e) {
System.out.println("Errore di lettura nel caricamento del file."
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
} catch (Exception e) {
System.out.println("Errore generico nel caricamento dei dati."
System.out.println("Ecco i dettagli dell'errore: " + e.getMessage());
}
finally {
try {
if(contenuto!=null)contenuto.close();
if(file!=null)file.close();
}
catch (Exception e) {
System.out.println("Errore dettagliato: " + e.getMessage());
}
}
}
}
[/CODE]
Seconda classe.
[CODE]
package archivio2;
import java.util.Scanner;
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
public class DatiArtista implements Serializable {
private Artista artista= new Artista();
private List <Artista> aList=new ArrayList<Artista>();
public void setAList(List <Artista> aList) {
this.aList=aList;
}
public List <Artista> getAList() {
return aList;
}
Scanner scanner = new Scanner (System.in);
public DatiArtista() {
}
public void creaArtisti () {
String inserisci =null;
int size=aList.size();
for (int i = 0; i< size; i++) {
if(artista != null && i== size) {
System.out.println("Attenzione! l'archivio risulta pieno"
}
else if (artista == null) {
aList.add(artista);
System.out.println("Inserisci nome"
inserisci =scanner.nextLine();
System.out.println("Inserisci cognome"
inserisci = scanner.nextLine();
System.out.println("Inserisci data di nascita."
inserisci = scanner.nextLine();
System.out.println("Inserisci biografia"
inserisci = scanner.nextLine();
break;
}
}
}
private void nuovoArtista() {
// TODO Auto-generated method stub
}
public void mostraArtisti() {
int size=aList.size();
for (int i = 0; i <size; i++) {
if (artista != null) {
System.out.println(((Artista) artista).getNome() + " " + ((Artista) artista).getCognome() +" " + ((Artista) artista).getDataDiNascita() +" " + ((Artista) artista).getBiografia());
}
}
}
public void cercaArtista() {
String scelta = null;
String cercaNome;
String cercaCognome;
int trova=0;
System.out.println("Premi n per cercare per nome, oppure c per cercare per cognome"
scelta = scanner.nextLine();
while(!scelta.equals("n" && (!scelta.equals("c")){
System.out.println("Attenzione! Carattere non valido! riprova. Digita n per cercare per nome oppure c per cercare il cognome"
scelta =scanner.nextLine();
}
if (scelta.equals("n") {
System.out.println("Inserisci il nome da cercare"
cercaNome = scanner.nextLine();
int size=aList.size();
for (int i=0;i<size;i++) {
if (artista == null) {
continue;
}
else if (cercaNome.equalsIgnoreCase(((Artista) artista).getNome())) {
System.out.println("Risultati trovati " + ((Artista) artista).getNome() +" " + ((Artista) artista).getCognome() +" " + ((Artista) artista).getDataDiNascita() +" " + ((Artista) artista).getBiografia());
trova ++;
}
}
}
if (scelta.equals("c") {
System.out.println("Inserisci il cognome da cercare"
cercaCognome = scanner.nextLine();
int size=aList.size();
for (int i=0;i<size;i++) {
if (artista == null) {
continue;
}
if (cercaCognome.equalsIgnoreCase(((Artista) artista).getCognome())) {
System.out.println("Risultati trovati " + ((Artista) artista).getCognome() +" " + ((Artista) artista).getNome() +" " + ((Artista) artista).getDataDiNascita() +" " + ((Artista) artista).getBiografia());
trova ++;
}
}
}
if (trova == 0) {
System.out.println("Risultato non trovato!"
}
}
}
[/CODE]
Terza classe.
[CODE]
package archivio2;
import java.util.Scanner;
import java.io.Serializable;
public class ApplicazioneArchivio implements Serializable{
public static void main(String[] args) {
DatiArtista datiartista = new DatiArtista();
int scelta=0;
Scanner scanner = new Scanner(System.in);
System.out.println("Benvenuti nell'archivio degli artisti!"
while (scelta>=0) {
System.out.println("Digita 1 per inserire un artista, 2 per visualizzare l'elenco completo degli artisti, 3 per cercare un artista oppure 4 per uscire"
scelta = scanner.nextInt();
switch (scelta) {
case 1:
datiartista.creaArtisti();
break;
case 2:
datiartista.mostraArtisti ();
break;
case 3:
datiartista.cercaArtista();
break;
case 4:
System.out.println("Ciao e alla prossima!"
scelta = -1;
break;
default:
System.out.println("Inserimento non valido!"
scelta=0;
}
}
}
}
[/CODE]
Il salvataggio dei file dovrebbe funzionare, ma non so ancora se funziona il caricamento.
Grazie a chi vorrà aiutarmi!
aaa