Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    137

    Output sbagliato da BufferedReader

    Dovrei leggere un file txt che presenta una colonna di numeri
    12356
    13567
    12456
    34566
    1234
    13
    1345

    ho utilizzato questo codice:

    jButton4 = new JButton();
    this.add(jButton4);
    jButton4.setText("RESULT");
    jButton4.setBounds(530, 400, 80, 23);
    jButton4.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
    JPanel panel = new JPanel();
    JLabel output = new JLabel();
    JFrame frame2 = new JFrame("OUTPUT");
    frame2.add(panel);
    frame2.setSize(190, 500);
    frame2.getContentPane().add(new JScrollPane(output));
    try{
    if((new File(nomefile+".txt")).exists()){
    FileReader file = new FileReader(nomefile+".txt");
    BufferedReader fileBufferReader = new BufferedReader(file);
    String outliers="<html>";
    while ( (fileBufferReader.readLine()) != null ){
    outliers += fileBufferReader.readLine()+ "
    "; }
    outliers +="</html>";
    fileBufferReader.close();}
    }
    catch(IOException e){
    System.out.println(e.getMessage()); }
    frame2.setVisible(true);}
    });}

    Penso di aver scritto tutto bene, ma nel frame2 che apro col tasto JButton4 mi ritrovo solo i numeri di posizione pari

    13567
    34566
    13


    Come mai? Mi potete aiutare?

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

    Re: Output sbagliato da BufferedReader

    Originariamente inviato da Macgiglio
    Penso di aver scritto tutto bene, ma nel frame2 che apro col tasto JButton4 mi ritrovo solo i numeri di posizione pari
    Fai 2 volte il readLine() ad ogni ciclo!!
    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
    Registrato dal
    Sep 2007
    Messaggi
    137
    ho provato come mi hai suggerito ma non va.....

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    137
    se puo essere d'aiuto alla fine dei numeri mi stampa anche "null"

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Forse non hai ancora notato che facendo:

    codice:
    while ( (fileBufferReader.readLine()) != null) {
        outliers += fileBufferReader.readLine()+ "
    ";
    }
    Per ogni ciclo viene eseguito un readLine() nella condizione del while e un altro nel corpo del while!!!

    Così!
    codice:
    String linea;
    
    while ((linea = fileBufferReader.readLine()) != null) {
        outliers += linea + "
    ";
    }
    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
    Registrato dal
    Sep 2007
    Messaggi
    137
    Grazie......non avevo notato l'errore....

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 © 2026 vBulletin Solutions, Inc. All rights reserved.