Java (Playlist 1) corso base ITA 12: leggere dati dalla tastiera, prima parte

preview_player
Показать описание

Playlist collegate:

Per rendere i nostri esperimenti più interessanti e farli assomigliare a 'veri' programmi non è ovviamente possibile accontentarsi di valori prefissati per i dati di lavoro. Introduciamo allora la prima delle due classi necessarie all'inserimento di dati da tastiera: l'InputStreamReader. Java ci costringerà anche fin da subito a gestire le possibile anomalie con il costrutto try catch (eccezioni).

LEGAL
Il video contiene solo la registrazione con il mio commento audio (senza altri video, immagini o audio) di una sessione di lavoro con software liberamente scaricabili ed utilizzabili da chiunque. Il fine è esclusivamente didattico.

The video contains only the registration of my voice while I'm using only open source or freely downloadable software. No extra video, photos or audio. The goal is only educational.
Рекомендации по теме
Комментарии
Автор

Un grazie grande, grande, grande  come una CASA!! sto seguendo vari tutorial è tutto molto ben fatto, molto interessante ed in alcuni casi un bel ripassino !!

antoniobroi
Автор

.. segue ...
poi ricollegherò quella playlist a questa

Intanto consiglio gli ultimi video con gli esercizi sui cicli/if che hanno un taglio molto più adatto, garantito; una specie di stop per rinforzarsi sui concetti di base. Grazie per aver espresso una critica costruttiva.

fcamuso
Автор

Devo darti ragione; troppa foga di portarvi verso Android :) Come ho scritto in un altro post penso di aprire un percorso parallelo alla playlist di base per rimediare; come dire: fin qui ok, se da qui trovi troppo complicato segui questo link che ti porterà più gardualmente ed evitando di trattar fin da subito oggetti come bufferedreader che poi si portano dietro try catch; inoltre ho esagerato con il controllo del formato di ciò che si legge. ... continua ...

fcamuso
Автор

Visto che me lo chiedete in diversi provvederò in uno dei prossimi video.

fcamuso
Автор

Quindi possiamo dire che è preferibile lo scanner? Osservando alcuni esercizi (da più parti) noto che recentemente si preferisce lo scanner ad InputStreamReader...

MrElisante
Автор

In estrema sintesi lo scanner riconosce al volo nell'input interi, double, stringhe ecc. ma non è 'thread safe'. InputStreamReader con BufferedReader (che vedremo nel prossimo video) sono thread safe ma restituisce stringhe che dovremo essere noi a convertire nei tipi base.

fcamuso
Автор

... segue ... il byte letto (che in realtà può essere interpretato come un carattere di cui l'intero rappresenta il codice ASCII) può essere memorizzato per usi futuri in una variabile, carattereLetto, che deve essere dello stesso tipo int.

fcamuso
Автор

Perchè in realtà la variabile potrebbe essere di tipo diverso, ad esempio quello di una classe figlia (ereditarietà) che essendo compatibile può essere memorizzata in una di tipo corrispondente alla classe madre. Forse ci saranno altri motivi ma questo è sicuramente uno importante ;)

fcamuso
Автор

Vorrei porLe una domanda, più che altro per soddisfare una mia curiosità: quando si istanzia/crea un oggetto, in questo caso cito l'esempio di "tastiera" perchè è necessario anteporre al nome dell'oggetto il suo tipo (InputStreamReader), visto che poi viene indicato dopo? Non è come duplicare la stessa informazione, come se fosse una ripetizione? Che poi gli ideatori di Java abbiano previsto questa sintassi per rafforzare il "concetto" o per rendere più robusto il linguaggio... Grazie!

MrElisante
Автор

Non capisco perchè al minuto 4:17, l'import diventa java.nio.CharBuffer (credo) senza un apparente motivo.

robertopaone
Автор

tastiera.read()

tastiera (il nome poteva essere qualunque altro, lo scegliamo noi) è un esemplare di oggetto InputStreamReader, ideato per leggere da un flusso di caratteri; un oggetto prima di poter essere usato deve essere creato con 'new'; un oggetto consente dopo la sua creazione di chiamare un comando tra quelli disponibili nella classe di appartenenza (InputStreamReader); tastiera.read() invoca quindi il comando read() che legge un byte (valori da 0 a 255)... continua ...

fcamuso
Автор

Salve professore, non ho ben chiara una cosa, allora InputStreamReader è un oggetto contenuto nella classe io il quale è contenuto nel package Java, tastiera è un identificare per InputStreamReader, giusto? E perchè il secondo InputStreamReader è un metodo invece il primo no? Non ho capito molto perchè nei parametri di InputStreamReader va inserito il System.in, può gentilmente spiegarmelo?
Grazie mille

orientino
Автор

ma nell'acquisizione dell input con la direttiva "import java.io.*" con lo streamreader è diversa da quella con la direttiva "import java.util.scanner" che usa lo scanner?
comunque complimenti per i video che sono veramente fatti bene

UGUAGLIOOOONE
Автор

Salve, puo spiegare la differenza tra import.java.util.scanner ed import.java.io ?

andreadegliantoni
Автор

Innanzitutto voglio ringraziarle per tutti i corsi (SONO DI GRANDE AIUTO :D ), avrei solo un problema riguardo questa lezione che non riesco a capire. Perché nella stampa che eseguiamo alla fine dove inseriamo il carattere ci viene stampato il codice ASCII, nel senso che non riesco a capire perché non ci viene stampato il carattere inserito da noi,
oppure dove lei ha inserito "prova" ha stampato il carattere della "p" e non tutta la parola.Grazie in anticipo

andreipanaite
Автор

Il mio Eclipse non mi suggerisce try/catch una volta creata
int carattereLetto = tastiera.read();
perché?
complimenti e grazie per il suo contributo. non smetterò mai di seguirla.

Michele-urgm
Автор

e se invece di leggere il primo carattere dovessi leggere il terzo? :S

sarmigb