This is an old revision of the document!
Table of Contents
Διαβάζοντας από την κονσόλα
Προκειμένου να διαβάσετε από την κονσόλα έχετε δύο επιλογές
- να διαβάσετε με χρήση του standard stream System.in. Τα standard streams ορίζονται από το λειτουργικό σύστημα και είναι τα εξής: System.in, System.err, System.out (σε αναλογία με τα STDIN, STDERR, STDOUT στη γλώσσα C).
- Με χρήση της κλάσης java.io.Console.
Διαβάζοντας από το System.in
To System.in είναι ένα stream τύπου byte-stream. Συνήθως από την κονσόλα θέλουμε να διαβάσουμε χαρακτήρες. Στις περιπτώσεις αυτές απαιτείται να το μετατρέψουμε σε character stream ως εξής:
InputStreamReader cin = new InputStreamReader(System.in);
Τον παραπάνω κώδικα συνήθως τον εντάσσουμε μέσα σε ένα block try/catch, όπως παρακάτω
try (InputStreamReader r = new InputStreamReader(System.in)) { char []buf = new char[128]; String word = null; int len = 0; System.out.print("Enter your input: "); if((len = r.read(buf,0,128)) != -1) { word = new String(buf); word = word.substring(0, len-1); System.out.println("Your input is: "+word); } else { System.out.println("No input!"); } } catch (IOException ex) { System.out.println("Unable to read from STDIN"); System.exit(1); }
Για την διευκόλυνση σας, κατά την ανάγνωση μπορείτε να δημιουργήσετε ένα αντικείμενο της κλάσης java.io.BufferedReader, όπως παρακάτω. Το πλεονέκτημα της συγκεκριμένης επιλογής είναι ότι η κλάση BufferedReader σας δίνει την δυνατότητα να διαβάσετε απευθείας μία γραμμή από το stream μέσω της μεθόδου readLine, την οποία επιστρέφει ως String.
try (BufferedReader r = new BufferedReader(new InputStreamReader(System.in)) ) { String word = null; System.out.print("Enter your input: "); if( (word=r.readLine()) != null) { System.out.println("Your input is: "+word); } else { System.out.println("No input!"); } }catch (IOException ex) { System.out.println("Unable to read from STDIN"); System.exit(1); }
Σε όλες τις περιπτώσεις που ανοίγετε ένα stream υποχρεούστε να ελέγχετε για πιθανή δημιουργία IOException κατά το άνοιγμα του stream. Ο compiler της Java θα εμφανίσει λάθος σε περίπτωση που δεν το κάνετε.
Διαβάζοντας με χρήση της κλάσης Console
Μπορείτε να διαβάσετε ή να γράψετε