This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
java:read_from_file [2016/03/19 05:36] gthanos [Χρησιμοποιώντας την κλάση Scanner] |
java:read_from_file [2016/03/19 10:36] gthanos [Παράδειγμα ανάγνωσης με χρήση της Scanner] |
||
---|---|---|---|
Line 88: | Line 88: | ||
Οι μέθοδοι της κλάσης //Scanner// έχουν συνοπτικά ως εξής: | Οι μέθοδοι της κλάσης //Scanner// έχουν συνοπτικά ως εξής: | ||
- | * '''' : | + | |
- | * '''' : | + | **Κατασκευαστές** |
- | * '''' : | + | * ''public Scanner(File file)'' : Δημιουργεί ένα νέο αντικείμενο της κλάσης Scanner προκειμένου να διαβάσουμε από το αρχείο //file//. |
- | * '''' : | + | * ''public Scanner(InputStream source)'' : Δημιουργεί ένα νέο αντικείμενο της κλάσης Scanner προκειμένου να διαβάσουμε από ένα [[http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html|java.io.InputStream]] //source//. Ο συγκεκριμένος κατασκευαστής είναι χρήσιμος εφόσον θέλουμε να διαβάσουμε από την κονσόλα. |
- | * '''' : | + | |
- | * '''' : | + | Ένα αρχείο μπορείτε να το ανοίξετε είτε με χρήση της κλάσης File που είδαμε νωρίτερα είτε με χρήση της κλάσης [[http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html|java.io.InputStream]], προκειμένου να χρησιμοποιήσετε την κλάση Scanner. Δείτε τα παραδείγματα χρήσης που ακολουθούν. |
- | * '''' : | + | |
- | * '''' : | + | **Μέθοδοι** |
- | * '''' : | + | * ''public void close()'' : Κλείνει το Scanner. Μετά την κλήση της close δεν μπορείτε να διαβάσετε τίποτα. |
+ | * ''public boolean hasNext()'' : Επιστρέφει true εάν υπάρχει κάτι για διάβασμα. | ||
+ | * ''public String next()'' : Επιστρέφει το επόμενο String για διάβασμα. Το επόμενο String οριοθετείται μέχρι να βρεθεί κενό ή χαρακτήρας αλλαγής γραμμής. | ||
+ | * ''public String nextLine()'' : Επιστρέφει την επόμενη γραμμή. Το τέλος της γραμμής οριοθετείται από την ύπαρξη του χαρακτήρα αλλαγής γραμμής newline ''\n'' ή carriege return ''\r'' ή συνδυασμό και των δύο. | ||
+ | * ''public boolean hasNextInt()'' : Επιστρέφει true εάν υπάρχει κάτι για διάβασμα το οποίο μπορεί να μεταφραστεί ως ακέραιος. Εάν επιστρέψει true, διαβάζουμε με την μέθοδο nextInt(). | ||
+ | * ''public int nextInt()'' : Διαβάζει και επιστρέφει έναν ακέραιο αριθμό. | ||
+ | * ''public boolean hasNextDouble()'' : Επιστρέφει true εάν υπάρχει κάτι για διάβασμα το οποίο μπορεί να μεταφραστεί ως double. Εάν επιστρέψει true, διαβάζουμε με την μέθοδο nextDouble(). | ||
+ | * ''public int nextDouble()'' : Διαβάζει και επιστρέφει έναν αριθμό double. | ||
+ | * ''public boolean hasNextBoolean()'' : Επιστρέφει true εάν υπάρχει κάτι για διάβασμα το οποίο μπορεί να μεταφραστεί ως boolean. Εάν επιστρέψει true, διαβάζουμε με την μέθοδο nextBoolean(). | ||
+ | * ''public int nextBoolean()'' : Διαβάζει και επιστρέφει μία τιμή boolean. | ||
+ | |||
+ | ==== Παράδειγμα ανάγνωσης με χρήση της Scanner ==== | ||
+ | |||
+ | <code java ReadWithScanner.java> | ||
+ | import java.util.Scanner; | ||
+ | import java.io.File; | ||
+ | |||
+ | public class ReadWithScanner { | ||
+ | public static void main(String []args) { | ||
+ | String firstname=null, lastname=null, number=null; | ||
+ | int i=0; | ||
+ | TelephoneNumber numbers[] = new TelephoneNumber[5]; | ||
+ | try { | ||
+ | Scanner sc = new Scanner(new File("telephone-list.txt")); | ||
+ | |||
+ | while( sc.hasNext() ) { | ||
+ | firstname = sc.next(); | ||
+ | lastname = sc.next(); | ||
+ | number = sc.next(); | ||
+ | |||
+ | if( lastname.charAt( lastname.length() -1 ) == ',' ) | ||
+ | lastname = lastname.substring(0, lastname.length() -1); | ||
+ | |||
+ | numbers[i++] = new TelephoneNumber(firstname+" "+lastname, number); | ||
+ | } | ||
+ | } catch(Exception ex) { | ||
+ | ex.printStackTrace(); | ||
+ | } | ||
+ | for(TelephoneNumber telephoneNumber : numbers) { | ||
+ | System.out.println(telephoneNumber); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | <WRAP tip 80% center round> | ||
+ | Το παραπάνω παράδειγμα θα μπορούσατε να το εκτελέσετε διαβάζοντας από την κονσόλα, αντί να διαβάζετε από αρχείο προκειμένου να διαβάσετε από την κονσόλα θα μπορούσατε να αντικαταστήσετε την γραμμή | ||
+ | <code java> | ||
+ | Scanner sc = new Scanner(new File("telephone-list.txt")); | ||
+ | </code> | ||
+ | |||
+ | με την γραμμή | ||
+ | |||
+ | <code java> | ||
+ | Scanner sc = new Scanner(System.in); | ||
+ | </code> | ||
+ | </WRAP> | ||