This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | Next revision Both sides next revision | ||
|
java:util_scanner_class [2021/05/14 15:13] |
java:util_scanner_class [2021/05/14 15:31] gthanos [Παράδειγμα ανάγνωσης με χρήση της Scanner] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Η κλάση Scanner ====== | ||
| + | Παρακάτω θα δούμε εναλλακτικούς τρόπους με τους οποίους μπορούμε να διαβάσουμε από ένα αρχείο κειμένου. Για τα παραδείγματα που ακολουθούν υποθέστε ότι καλούμαστε να διαβάσουμε το παρακάτω αρχείο που περιέχει τα ονόματα και τα τηλέφωνα ενός τηλεφωνικού καταλόγου. | ||
| + | |||
| + | <code txt telephone-list.txt> | ||
| + | John Smith 6944854544 | ||
| + | Robert Parson 6978456123 | ||
| + | Nick Carlson 6982147852 | ||
| + | Barbara Miller 6978852456 | ||
| + | Max Taylor 6936785412 | ||
| + | </ | ||
| + | |||
| + | Τα οποία θέλουμε να τα αποθηκεύσουμε σε ένα πίνακα από αντικείμενα της παρακάτω κλάσης TelephoneNumber | ||
| + | |||
| + | <code java TelephoneNumber.java> | ||
| + | |||
| + | public class TelephoneNumber { | ||
| + | private String name; | ||
| + | private long number; | ||
| + | | ||
| + | public TelephoneNumber(String newName, long newNumber) { | ||
| + | name = newName; | ||
| + | number = newNumber; | ||
| + | } | ||
| + | | ||
| + | public String getName() { return name; } | ||
| + | public long getNumber() { return number; } | ||
| + | public void setName(String newName) { name = newName; } | ||
| + | public void setNumber(long newNumber) { number = newNumber; } | ||
| + | | ||
| + | public String toString() { | ||
| + | return "Name: " | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Η Java παρέχει την επιπλέον δυνατότητα να διαβάζετε συγκεκριμένους τύπους δεδομένων μέσω της κλάσης [[http:// | ||
| + | |||
| + | Οι μέθοδοι της κλάσης //Scanner// έχουν συνοπτικά ως εξής: | ||
| + | |||
| + | **Κατασκευαστές** | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Ένα αρχείο μπορείτε να το ανοίξετε είτε με χρήση της κλάσης File που είδαμε νωρίτερα είτε με χρήση της κλάσης [[http:// | ||
| + | |||
| + | **Μέθοδοι** | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== Παράδειγμα ανάγνωσης με χρήση της Scanner ==== | ||
| + | |||
| + | Το παρακάτω παράδειγμα διαβάζει από ένα αρχείο ένα σύνολο εγγραφών και δημιουργεί ένα πίνακα αντικειμένων τύπου TelephoneNumber. Στη συνέχεια εκτυπώνει τα περιεχόμενα του πίνακα στην κονσόλα. | ||
| + | |||
| + | <code java ReadWithScanner.java> | ||
| + | public class ReadWithScanner { | ||
| + | public static void main(String []args) { | ||
| + | | ||
| + | TelephoneNumber[] numbers; | ||
| + | numbers = readTelephoneNumbers(" | ||
| + | printTelephoneNumbers(numbers); | ||
| + | } | ||
| + | | ||
| + | public static void printTelephoneNumbers(TelephoneNumber[] numbers) { | ||
| + | for(TelephoneNumber number : numbers) { | ||
| + | System.out.println(number); | ||
| + | } | ||
| + | } | ||
| + | | ||
| + | public static TelephoneNumber[] readTelephoneNumbers(String filename) { | ||
| + | String firstname, lastname; | ||
| + | | ||
| + | long number; | ||
| + | int i=0; | ||
| + | TelephoneNumber numbers[] = new TelephoneNumber[5]; | ||
| + | try(Scanner sc = new Scanner(new File(filename))) { | ||
| + | | ||
| + | while( sc.hasNext() ) { | ||
| + | firstname = sc.next(); | ||
| + | lastname = sc.next(); | ||
| + | number = sc.nextLong(); | ||
| + | |||
| + | numbers[i++] = new TelephoneNumber(firstname+" | ||
| + | } | ||
| + | | ||
| + | } catch(InputMismatchException ex) { | ||
| + | System.out.println(" | ||
| + | } catch(FileNotFoundException ex) { | ||
| + | System.out.println(" | ||
| + | } | ||
| + | | ||
| + | return numbers; | ||
| + | } | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <WRAP tip 80% center round> | ||
| + | Το παραπάνω παράδειγμα θα μπορούσατε να το εκτελέσετε διαβάζοντας από το πληκτρολόγιο, | ||
| + | <code java> | ||
| + | Scanner sc = new Scanner(new File(" | ||
| + | </ | ||
| + | |||
| + | με την γραμμή | ||
| + | |||
| + | <code java> | ||
| + | Scanner sc = new Scanner(System.in) | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | | Προηγούμενο: | ||