Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    8

    Utilizzo ottimale BufferedReader

    Ciao a tutti, sto implementando un programmino che richiede l'utilizzo di una System.in all'interno di un while.
    codice:
    while(flag)
    {
      BufferedReader r=new BufferedReader(new InputStreamReader(System.in));
    }
    Quali di questi oggetti (tra quelli utilizzati) posso dichiarare fuori dal while? il mio obiettivo è cercare di rendere più elegante possibile il codice e alleggerire il programma.

    Grazie in anticipo!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Se lo scopo è di leggere da tastiera un numero non precisato di volte, allora tutto andrebbe dichiarato fuori dal while (in quel modo, infatti, tu vai a creare 2 nuovi oggetti per ogni iterazione del while... oggetti che sono sempre riferiti allo stesso InputStream, ovvero la tastiera).

    Inoltre, consiglierei di separare tutti gli oggetti, in modo da poter effettuare un più corretto trattamento delle eccezioni:

    codice:
    InputStreamReader isr = null;
    BufferedReader br = null;
    try {
       isr = new InputStreamReader( System.in );
       br = new BufferedReader( isr );
       while( flag ) {
          ...   // Leggo da tastiera
       }
    } catch (Exception e) {
       e.printStackTrace();
    } finally {
       if (br != null) {
          try { br.close(); } catch (Exception e) { }
       } else {
          if (isr != null) {
             try { isr.close(); } catch (Exception e) { }
          }
       }
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    8
    il mio scopo è scrivere un numero non precisato di volte. Quindi ogni ciclo devo utilizzare la System.in per inserire da tastiera il nuovo input. Come posso procedere?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da elajiii
    il mio scopo è scrivere un numero non precisato di volte. Quindi ogni ciclo devo utilizzare la System.in per inserire da tastiera il nuovo input. Come posso procedere?
    Esattamente come ti ho mostrato.
    PS: System.in serve a leggere da tastiera, non a scrivere... da nessuna parte.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    8
    grazie della risposta.. Ma allora quale metodo devo utilizzare per leggere da tastiera all'interno del while?

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da elajiii
    grazie della risposta.. Ma allora quale metodo devo utilizzare per leggere da tastiera all'interno del while?
    readLine() di BufferedReader
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    8
    Grazie mille ad entrambi!! Siete stati utilissimi!!!

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.