java:console_read

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
java:console_read [2015/06/19 16:12]
gthanos created
java:console_read [2015/06/20 02:31]
gthanos [Διαβάζοντας με χρήση της κλάσης Console]
Line 6: Line 6:
  
 ===== Διαβάζοντας από το System.in ===== ===== Διαβάζοντας από το System.in =====
 +
 +To **System.in** είναι ένα stream τύπου byte-stream. Συνήθως από την κονσόλα θέλουμε να διαβάσουμε χαρακτήρες. Στις περιπτώσεις αυτές απαιτείται να το μετατρέψουμε σε character stream ως εξής:
 +
 +<code java>
 +InputStreamReader cin = new InputStreamReader(System.in);​
 +</​code>​
 +
 +Τον παραπάνω κώδικα συνήθως τον εντάσσουμε μέσα σε ένα block try/catch, όπως παρακάτω
 +
 +<code java>
 +  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);​
 +  }      ​
 +</​code>​
 +
 +Για την διευκόλυνση σας, κατά την ανάγνωση μπορείτε να δημιουργήσετε ένα αντικείμενο της κλάσης java.io.BufferedReader,​ όπως παρακάτω. Το πλεονέκτημα της συγκεκριμένης επιλογής είναι ότι η κλάση BufferedReader σας δίνει την δυνατότητα να διαβάσετε απευθείας μία γραμμή από το stream μέσω της μεθόδου readLine, την οποία επιστρέφει ως String.
 +
 +<code java>
 +  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);​
 +  }      ​
 +</​code>​
 +
 +<WRAP info 80% center round>
 +Σε όλες τις περιπτώσεις που ανοίγετε ένα stream υποχρεούστε να ελέγχετε για πιθανή δημιουργία IOException κατά το άνοιγμα του stream. Ο compiler της Java θα εμφανίσει λάθος σε περίπτωση που δεν το κάνετε.
 +</​WRAP>​
  
 ===== Διαβάζοντας με χρήση της κλάσης Console ===== ===== Διαβάζοντας με χρήση της κλάσης Console =====
 +
 +Μπορείτε να διαβάσετε ή να γράψετε ​
  
  
java/console_read.txt · Last modified: 2016/02/26 11:15 (external edit)