Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    leggo un file ma non riconosce l'if

    ciao a tutti ,
    spiego subito la mia perplessità
    sto cercando di creare una classe Bilancio
    all'interno faccio girare un file con 3 attributi :tipo(entrata/uscita),descrizione,costo;
    il file viene letto correttamente ma quando confronto il tipo con una stringa utilizzando il metodo equals() salta l'if anche se il tipo è identico alla stringa e passa all'else.
    metto qui il codice :



    codice:
    public static void main(String[] args) {
    
            Spese objspese;
            File fspese;
            RandomAccessFile rafspese;
            List listspese = new ArrayList ();
            String tipo, desc ;
            double cos, racspese = 0, racentrate = 0, totale = 0;
            int countspe = 0  , countent = 0 ;
            try {
                fspese = new File("bilancio.txt");
                rafspese = new RandomAccessFile(fspese, "rw");
    
                if (fspese.exists()) {
                    rafspese.seek(rafspese.length());
                }
    
         rafspese.seek(0);
                objspese = new Spese();
                while (rafspese.getFilePointer() < rafspese.length()) {
                    objspese.Lettura(rafspese);
                    tipo  = objspese.tipo;
                    cos = objspese.costo;
                    if (tipo.equals("uscita")){                //questo if non viene mai letto
                        racspese += cos;                      //e quindi incrementa solamente racentrate
                    }else{
                        System.out.println("");
                        racentrate += cos;
                    }
                }
    per quale motivo tipo non riconose al suo interno "uscita" pur essendoci?
    spero di essermi spiegato correttamente

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: leggo un file ma non riconosce l'if

    Originariamente inviato da tapu
    all'interno faccio girare un file con 3 attributi :tipo(entrata/uscita),descrizione,costo;
    il file viene letto correttamente ma quando confronto il tipo con una stringa utilizzando il metodo equals() salta l'if anche se il tipo è identico alla stringa e passa all'else.
    Il "nocciolo" della lettura è qui:

    objspese.Lettura(rafspese);

    Se non dici cosa fa quel Lettura .... non si può capire cosa e come leggi.

    E poi, scusa, ma il file è di "testo"??? E come è fatto? Su più righe?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    Re: Re: leggo un file ma non riconosce l'if

    E poi, scusa, ma il file è di "testo"??? E come è fatto? Su più righe?
    Lettura :


    codice:
    
    
    il file è un txt , all'interno ci sono 2 stringe è un double (per il conto in €) ed è su più righe

  4. #4
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    Re: Re: leggo un file ma non riconosce l'if

    E poi, scusa, ma il file è di "testo"??? E come è fatto? Su più righe?
    Lettura :


    codice:
    public class Spese {
    
        public String tipo,  descrizione;
        public double costo;
    
        public Spese(String tipo, String descrizione, double costo) {
            this.tipo = tipo;
            this.descrizione = descrizione;
            this.costo = costo;
        }
    
        public Spese() {
        }
    
        public void Scrivi(RandomAccessFile raf, Spese sp) {
            try {
                raf.writeUTF(tipo);
                raf.writeUTF(descrizione);
                raf.writeDouble(costo);
            } catch (Exception e) {
            }
        }
        public Spese Lettura (RandomAccessFile raf){
         try{
             this.tipo = raf.readUTF();
             this.descrizione = raf.readUTF();
             this.costo = raf.readDouble();
         }catch (Exception e){
         }return this;   
        }
    }
    il file è un txt , all'interno ci sono 2 stringe è un double (per il conto in €) ed è su più righe

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: leggo un file ma non riconosce l'if

    Originariamente inviato da tapu
    codice:
        public void Scrivi(RandomAccessFile raf, Spese sp) {
            try {
                raf.writeUTF(tipo);
                raf.writeUTF(descrizione);
                raf.writeDouble(costo);
            } catch (Exception e) {
            }
        }
        public Spese Lettura (RandomAccessFile raf){
         try{
             this.tipo = raf.readUTF();
             this.descrizione = raf.readUTF();
             this.costo = raf.readDouble();
         }catch (Exception e){
         }return this;   
        }
    }
    Tralasciando le questioni sul mancato "incapsulamento" dei dati ... lettura e scrittura tecnicamente risultano corrette e "simmetriche". In Scrivi c'è un parametro 'sp' che non usi (e che non servirebbe e non avrebbe granché senso). Potrei pensare che il problema non sia in lettura ma in scrittura.

    A parte il test con equals() per vedere se è "uscita", hai provato a farti stampare il contenuto dei dati letti? Sono corretti?

    EDIT: ah e un'altra cosa: nei due metodi vedo che catturi le eccezioni in un catch vuoto. Chiaramente questo non è il modo corretto di gestire le eccezioni. In quel caso le eccezioni dovrebbero poter uscire dal metodo e quindi non dovresti fare alcun try-catch ma semplicemente dichiarare che il metodo lancia IOException. Dovrebbe essere il "chiamante" a gestire le eccezioni.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    Re: Re: Re: Re: leggo un file ma non riconosce l'if

    [QUOTE]

    A parte il test con equals() per vedere se è "uscita", hai provato a farti stampare il contenuto dei dati letti? Sono corretti?
    [\QUOTE]

    si la stampa di controllo lo fatta e ho visto che il file viene scritto in maniera corretta; ho provato a fare un debug e ho notato che le variabili vengono scritte nel file ma al momento dell'if slitta all'istruzione sucessiva.

    per il resto scusa la mia inesperienza , ma non è da molto che uso queti linguaggi

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.