salve,
è corretto il seguente frammento di codice(deve prendere in input un valore intero, un float ed una stringa da tastiera e scriverli su un file):
http://pastebin.com/AkPHhUqp
C'è un modo più semplice di questo?
grazie![]()
salve,
è corretto il seguente frammento di codice(deve prendere in input un valore intero, un float ed una stringa da tastiera e scriverli su un file):
http://pastebin.com/AkPHhUqp
C'è un modo più semplice di questo?
grazie![]()
Il while(true) non si può proprio vedere, ci sono modi decisamente migliori e più eleganti per fare ciò (tipo un do-while con una condizione di uscita opportuna).
Devi proprio usare il BufferedReader? Perché con Scanner te la caveresti più facilmente...
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
Potresti dirmi perchè conviene utilizzare scanner piuttosto che bufferedReader? E' da poco che sto studiando l'IO di java (sono abbastanza confuso)
grazie per la risposta![]()
Perché Scanner è ad un livello un po' più alto di BufferedReader. E Scanner ha metodi per leggere interi, double, stringhe ecc mentre BufferedReader legge solo stringhe.Originariamente inviato da earl
Potresti dirmi perchè conviene utilizzare scanner piuttosto che bufferedReader? E' da poco che sto studiando l'IO di java (sono abbastanza confuso)
grazie per la risposta![]()
La javadoc è piuttosto esaustiva![]()
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
ok, ho sistemato il codice seguenfo i tuoi consigli.
Ho due dubbi:
Dove dovrei chiudere il flusso di informazioni di scanner?
Per l'output invece è preferibile utilizzare la classe PrintWriter o BufferedWriter ?
Grazie ancora dei chiarimenti![]()
Ti consiglio alla fine del writer di inserire anche la seguente istruzione:
writer.flush();
che garantisce l'immediata scrittura sul disco dal buffer e poi pulisce quest'ultimo.
Ciao![]()
I computer sono incredibilmente veloci, accurati e stupidi.
Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
Insieme sono una potenza che supera l'immaginazione.
A.Einstein
scusa,
non ho inserito il codice che ho corretto nel messaggio precedente.
http://pastebin.com/QZDuZALb
Non serve creare un nuovo Scanner ad ogni nuovo inserimento.Originariamente inviato da earl
ok, ho sistemato il codice seguenfo i tuoi consigli.
Ho due dubbi:
Dove dovrei chiudere il flusso di informazioni di scanner?
Per l'output invece è preferibile utilizzare la classe PrintWriter o BufferedWriter ?
Grazie ancora dei chiarimenti![]()
Exception è troppo generica come eccezione, se quello che inserisci non è convertibile nel tipo richiesto mi pare che venga sollevata una InputMismatchException.
Ti consiglio di non usare il TAB per indentare ma di usare gli spazi (1 tab = 4 spazi ad esempio), più "uniformi" della tabulazione
Per l'output potresti usare direttamente il FileWriter, senza decorarlo![]()
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
Quindi, dici che è meglio passare l'oggetto in di tipo scanner ad ogni metodo piuttosto che creare un nuovo oggetto Scanner in ognuno di essi?
Per le eccezioni: quindi è più corretto scrivere tutti i blocchi catch con le relative eccezioni piuttosto che un unico catch (con un'eccezione generica) in cui faccio la stampa di e.toString?
Per decorare intendi l'uso di PrintWriter?
grazie ancora dei chiarimenti
![]()
In questo caso crereei un unico Scanner a livello di classe (static come i metodi), che verrà quindi usato da tutti.Originariamente inviato da earl
Quindi, dici che è meglio passare l'oggetto in di tipo scanner ad ogni metodo piuttosto che creare un nuovo oggetto Scanner in ognuno di essi?
In questo caso va bene anche Exception ma in un contesto reale potresti aver bisogno di sapere quale errore è capitato tra i mille che possono capire (ma anche lì, non è detto che sia necessario catturare l'eccezion, magari conviene più rilanciarla ma non è questo il caso: ora ti basta un semplice messaggio che spiega cosa è successo).Originariamente inviato da earl
Per le eccezioni: quindi è più corretto scrivere tutti i blocchi catch con le relative eccezioni piuttosto che un unico catch (con un'eccezione generica) in cui faccio la stampa di e.toString?
codice:... private static Scanner scanner = new Scanner(System.in); public static int insertInt() { int num = 0; boolean ok = false; do { try { System.out.print("Inserisci un valore intero: "); num = scanner.nextInt(); ok = true; } catch (Exception ex) { System.out.println("Il valore inserito non e\' un intero valido."); } } while (!ok); return num; } ...
Esatto. Nel package java.io si usa molto il pattern "decorator".Originariamente inviato da earl
Per decorare intendi l'uso di PrintWriter?
grazie ancora dei chiarimenti
![]()
Ad esempio, per leggere un file puoi usare FileReader (che legge carattere per carattere). Però puoi inserirlo in un BufferedReader per aggiungere un buffer alla lettura, in pratica "decori" l'oggetto originale![]()
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI