[JAVA] Scrivere metodo dato un file di caratteri

Stato
Discussione chiusa ad ulteriori risposte.

Xenex134

Nuovo Utente
32
3
Ciao a tutti , devo scrivere un metodo che dato il nome di un file di caratteri contenente numeri interi, uno per ogni riga, verifica se il numero dei valori positivi presenti nel file supera quello dei valori negativi.
Questo è quello che sono riuscito a fare. Il problema che riscontro è che mi dice sempre che i valori positivi sono maggiori di quelli negativi anche quando nel file.txt i valori negativi sono maggiori ...Potreste aiutarmi?

Java:
public static String valori(String nomeFile){
     
       int accNeg=0;
       int accPos=0;
        try (FileInputStream bin = new FileInputStream(nomeFile);
                BufferedInputStream bis = new BufferedInputStream(bin);
                DataInputStream lettore = new DataInputStream(bis)) {
            while (lettore.available() != 0) {
                int parziale = lettore.readInt();
                if (parziale > 0) {
                    accPos++;
                }
                    else if(parziale<0){                          
                            accNeg++;
              }
            }
        } catch (FileNotFoundException e) {
            System.out.println("File " + nomeFile + " non trovato");
        } catch (IOException e) {
            System.out.println("Errore: " + e.getMessage());
        }
        if(accPos>accNeg){
        return "Valori positivi maggiori di quelli negativi";
        }
        else return "Valori positivi minori o ugali di quelli negativi";
  }
 
Ultima modifica:

BAT

Moderatore
Staff Forum
Utente Èlite
22,668
11,448
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
fai una stampa della variabile parziale per controllare cosa sta leggendo ad ogni passo, ho l'impressione che non vengano scandite correttamente le righe.
 

Fausto Di Iorio

Nuovo Utente
104
9
Ciao,
personalmente non userei quel codice per leggere un file.
Ci sono molti modi per leggere un file. Dacchè nel tuo caso ti serve per la lettura dei caratteri contenuti al suo interno e conosci il path completo al file opterei per un BufferedReader. Personalmente farei qualcosa del genere:
Java:
BufferedReader bR= new BufferedReader(new FileReader("path al file"));
a questo punto il BufferedReader offre un metodo che consente facilmente di leggere il contenuto di una riga, che tu dovrai opportunamente processare. Non voglio darti altri suggerimenti perchè già così diventa fin troppo semplice. se dovessi avere ancora dubbi scrivi pure.
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!