This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | Previous revision Next revision Both sides next revision | ||
|
java:console_read [2015/06/20 01:40] |
java:console_read [2015/06/20 02:31] gthanos [Διαβάζοντας με χρήση της κλάσης Console] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Διαβάζοντας από την κονσόλα ====== | ||
| + | |||
| + | Προκειμένου να διαβάσετε από την κονσόλα έχετε δύο επιλογές | ||
| + | - να διαβάσετε με χρήση του standard stream **System.in**. Τα standard streams ορίζονται από το λειτουργικό σύστημα και είναι τα εξής: **System.in**, | ||
| + | - Με χρήση της κλάσης **[[http:// | ||
| + | |||
| + | ===== Διαβάζοντας από το System.in ===== | ||
| + | |||
| + | To **System.in** είναι ένα stream τύπου byte-stream. Συνήθως από την κονσόλα θέλουμε να διαβάσουμε χαρακτήρες. Στις περιπτώσεις αυτές απαιτείται να το μετατρέψουμε σε character stream ως εξής: | ||
| + | |||
| + | <code java> | ||
| + | InputStreamReader cin = new InputStreamReader(System.in); | ||
| + | </ | ||
| + | |||
| + | Τον παραπάνω κώδικα συνήθως τον εντάσσουμε μέσα σε ένα block try/catch, όπως παρακάτω | ||
| + | |||
| + | <code java> | ||
| + | try (InputStreamReader r = new InputStreamReader(System.in)) { | ||
| + | char []buf = new char[128]; | ||
| + | | ||
| + | int len = 0; | ||
| + | | ||
| + | | ||
| + | word = new String(buf); | ||
| + | word = word.substring(0, | ||
| + | | ||
| + | } | ||
| + | else { | ||
| + | | ||
| + | } | ||
| + | } catch (IOException ex) { | ||
| + | System.out.println(" | ||
| + | System.exit(1); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Για την διευκόλυνση σας, κατά την ανάγνωση μπορείτε να δημιουργήσετε ένα αντικείμενο της κλάσης java.io.BufferedReader, | ||
| + | |||
| + | <code java> | ||
| + | try (BufferedReader r = new BufferedReader(new InputStreamReader(System.in)) ) { | ||
| + | String word = null; | ||
| + | System.out.print(" | ||
| + | if( (word=r.readLine()) != null) { | ||
| + | System.out.println(" | ||
| + | } | ||
| + | else { | ||
| + | System.out.println(" | ||
| + | } | ||
| + | }catch (IOException ex) { | ||
| + | System.out.println(" | ||
| + | System.exit(1); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <WRAP info 80% center round> | ||
| + | Σε όλες τις περιπτώσεις που ανοίγετε ένα stream υποχρεούστε να ελέγχετε για πιθανή δημιουργία IOException κατά το άνοιγμα του stream. Ο compiler της Java θα εμφανίσει λάθος σε περίπτωση που δεν το κάνετε. | ||
| + | </ | ||
| + | |||
| + | ===== Διαβάζοντας με χρήση της κλάσης Console ===== | ||
| + | |||
| + | Μπορείτε να διαβάσετε ή να γράψετε | ||
| + | |||
| + | |||
| + | |||
| + | |||