Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2017
    Messaggi
    5

    Inserire un file di testo in un ArrayList in Java

    Salve a tutti, sto implementando un programma per la gestione di un cinema a cui, per semplicità, possono accedere solamente tre utenti. Ho creato quindi una classe Utente con attributi identificativo, password, nome e cognome e un file di testo composto da tre righe, ciascuna con i quattro attributi in quest'ordine.
    Nella classe Cinema voglio leggere il file di testo e inserirlo in un ArrayList di utenti; per ora ho fatto così:

    public void setUtente() {

    try {
    BufferedReader in = new BufferedReader(new FileReader("inputFile.txt"));
    String str;
    while ((str = in.readLine()) != null) {
    String[] strings=str.split(" ");
    String id=strings[0];
    String password=strings[1];
    String nome=strings[2];
    String cognome=strings[3];
    }
    in.close();
    } catch (Exception e) {
    System.err.println("Non ho aperto il file");
    }
    }
    Come posso fare in modo che ogni stringa del file sia un campo dell'ArrayList di utenti? Grazie mille in anticipo a chi risponderà

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto, sezione sbagliata (Javascript) segnalo attendi il transfert.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2017
    Messaggi
    5
    Ciao e scusami

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da mrx19 Visualizza il messaggio
    Come posso fare in modo che ogni stringa del file sia un campo dell'ArrayList di utenti? Grazie mille in anticipo a chi risponderà
    Il tuo ArrayList dovrà contenere oggetti Utente. Quindi abbozzato:

    codice:
    // QUI crei un ArrayList
    
    while ((str = in.readLine()) != null) {
        String[] strings=str.split(" ");
        String id=strings[0];
        String password=strings[1];
        String nome=strings[2];
        String cognome=strings[3];
    
        // QUI crei un oggetto Utente passando i dati appena estratti
        // aggiungi il Utente nel ArrayList
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2017
    Messaggi
    5
    Grazie mille per l'aiuto! Ho provato a fare come mi hai detto e il risultato è questo:

    ArrayList<Utente> utenti = new ArrayList<Utente>();
    public void setUtente() {

    try {
    BufferedReader in = new BufferedReader(new FileReader("inputFile.txt"));
    String str;
    while ((str = in.readLine()) != null) {
    String[] strings=str.split(" ");
    String id=strings[0];
    String password=strings[1];
    String nome=strings[2];
    String cognome=strings[3];

    Utente u = new Utente();
    u.setId(id);
    u.setPassword(password);
    u.setNome(nome);
    u.setCognome(cognome);

    utenti.add(u);
    }
    in.close();
    } catch (Exception e) {
    System.err.println("Non ho aperto il file");
    }
    }

    Dove i metodi set sono del tipo:
    public void setNome(String nome) {
    this.nome = nome;
    }

    Purtroppo quando eseguo il programma mi restituisce "Non ho aperto il file"

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da mrx19 Visualizza il messaggio
    Purtroppo quando eseguo il programma mi restituisce "Non ho aperto il file"
    L'eccezione potrebbe essere scatenata per diversi motivi. Abituati a: debuggare vedendo in debug quale è l'eccezione, o al limite mettendo il print della eccezione, un banale System.out.println(e); o anche lo stacktrace completo con e.printStackTrace();

    Se il problema è che non trova il file: la specifica "inputFile.txt" è relativa alla directory corrente. Quindi quale è la directory corrente devi saperlo tu o perlomeno averne il controllo (e dipende da come/da dove avvii la applicazione).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.