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:42] gthanos [Χρησιμοποιώντας την κλάση Scanner] |
java:read_from_file [2016/03/19 06:24] gthanos [Παράδειγμα ανάγνωσης με χρήση της Scanner] |
||
---|---|---|---|
Line 91: | Line 91: | ||
**Κατασκευαστές** | **Κατασκευαστές** | ||
* ''public Scanner(File file)'' : Δημιουργεί ένα νέο αντικείμενο της κλάσης Scanner προκειμένου να διαβάσουμε από το αρχείο //file//. | * ''public Scanner(File file)'' : Δημιουργεί ένα νέο αντικείμενο της κλάσης Scanner προκειμένου να διαβάσουμε από το αρχείο //file//. | ||
- | * ''Scanner(InputStream source)'' : Δημιουργεί ένα νέο αντικείμενο της κλάσης Scanner προκειμένου να διαβάσουμε από ένα [[http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html|java.io.InputStream]]. | + | * ''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()'' : Κλείνει | + | * ''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() ) { | ||
+ | if( firstname == null ) | ||
+ | firstname = sc.next(); | ||
+ | if( lastname == null ) | ||
+ | lastname = sc.next(); | ||
+ | else | ||
+ | number = sc.next(); | ||
+ | |||
+ | if( lastname.charAt( lastname.length() -1 ) == ',' ) | ||
+ | lastname = lastname.substring(0, lastname.length() -1); | ||
+ | |||
+ | if( firstname != null && lastname != null && number != null) { | ||
+ | numbers[i++] = new TelephoneNumber(firstname+" "+lastname, number); | ||
+ | number = null; | ||
+ | firstname = null; | ||
+ | lastname = null; | ||
+ | } | ||
+ | } | ||
+ | } 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> | ||
+ | |||
+ | |||
+ | |||
+ | </WRAP> | ||