Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema I/O

  1. #1

    Problema I/O

    Ciao a tutti, recentemente sono incappato in un problema che veramente non mi spiego.
    Ho creato una serie di classi etc. , molte di queste usano una mia semplicissima classe per l'immissione da tastiera restituendo una stringa :


    codice:
    public class GestioneFile {
        
        public String scritturaDaTastiera ()  {
            
            String stringa = null;
            InputStreamReader isr = new InputStreamReader(System.in);
            BufferedReader in = new BufferedReader(isr);
            try {
                stringa = in.readLine();
            } catch (IOException e) {
                System.out.println("Errore");
            } finally {
                try {
                    in.close();
                } catch(IOException exc) {
                    System.out.println("Errore2");
                }
            }
            return(stringa);
        }
    }

    Il problema è, quando la richiamo la prima volta, funziona, ma se la richiamo una seconda volta, mi restituisce un IOException dandomi in questo caso "Errore".
    Può influire che ho reinstallato ubuntu e quindi JDK7 (evidentemente sbagliando qualcosa) ?? Perché prima funzionava....

    Grazie mille per l'aiuto!
    Ultima modifica di LeleFT; 12-05-2014 a 15:15 Motivo: Aggiunti i tag CODE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da marcofio Visualizza il messaggio
    codice:
    		InputStreamReader isr = new InputStreamReader(System.in);
    		BufferedReader in = new BufferedReader(isr);
    La creazione della catena di oggetti per l'input da System.in andrebbe fatta solo una volta all'inizio .... non più volte.

    Tra l'altro fai in.close(); .... quindi ovviamente chiudi lo standard-input, cioè non potresti più riusarlo. Ma anche se non lo chiudessi, vale comunque quanto ho detto prima.
    Ultima modifica di andbin; 12-05-2014 a 14:06
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    La creazione della catena di oggetti per l'input da System.in andrebbe fatta solo una volta all'inizio .... non più volte.

    Tra l'altro fai in.close(); .... quindi ovviamente chiudi lo standard-input, cioè non potresti più riusarlo. Ma anche se non lo chiudessi, vale comunque quanto ho detto prima.
    Cioè la dovrei fare una sola volta, quando inizializzo l'oggetto della classe??

    Comunque, siccome sul libro, almeno dove sono arrivato 3/4, questa cosa non viene detta , mi potresti indicare come posso ovviare a quest'inconveniente ??

  4. #4
    Quote Originariamente inviata da andbin Visualizza il messaggio
    La creazione della catena di oggetti per l'input da System.in andrebbe fatta solo una volta all'inizio .... non più volte.

    Tra l'altro fai in.close(); .... quindi ovviamente chiudi lo standard-input, cioè non potresti più riusarlo. Ma anche se non lo chiudessi, vale comunque quanto ho detto prima.
    Ora ho capito cosa volevi dire... Solo che il libro da cui studio non ne fa menzione. Grazie mille per l'aiuto.

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.