[JAVA] Scrivere metodo dato un file di caratteri

Xenex134

Nuovo Utente
2
0
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
5,118
2,217
CPU
Neurone solitario
Dissipatore
Ventaglio azionato a mano
Scheda Madre
Casalinga
RAM
Molto molto volatile
GPU
Binoculare integrata nel cranio
PSU
Pastasciutta, pollo e patatine al forno
Net
Segnali di fumo e/o tamburi
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
100
8
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.
 

Entra

oppure Accedi utilizzando

Hot: PS5 VS XBOX X/S?

  • Playstation 5

    Voti: 298 63.5%
  • XBOX Series X/S

    Voti: 171 36.5%

Discussioni Simili