java:read_from_file

Differences

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

Link to this comparison view

Next revision
Previous revision
java:read_from_file [2016/03/30 10:05]
gthanos created
java:read_from_file [2017/02/07 12:44]
gthanos removed
Line 1: Line 1:
-====== Διαβάζοντας από ένα αρχείο ======+====== Η κλάση Scanner ======
  
-Στην προηγούμενη παράγραφο είδαμε πως μπορούμε να δημιουργήσουμε ένα αντικείμενο της κλάσης File, αλλά και πως μπορούμε να πλοηγηθούμε στους καταλόγους του filesystem του υπολογιστή μας. Στην παρούσα σελίδα θα δούμε εναλλακτικούς τρόπους με τους οποίους μπορούμε να διαβάσουμε από ένα αρχείο κειμένου. Για τα παραδείγματα που ακολουθούν υποθέστε ότι καλούμαστε να διαβάσουμε το παρακάτω αρχείο που περιέχει τα ονόματα και τα τηλέφωνα ενός τηλεφωνικού καταλόγου.+Παρακάτω θα δούμε εναλλακτικούς τρόπους με τους οποίους μπορούμε να διαβάσουμε από ένα αρχείο κειμένου. Για τα παραδείγματα που ακολουθούν υποθέστε ότι καλούμαστε να διαβάσουμε το παρακάτω αρχείο που περιέχει τα ονόματα και τα τηλέφωνα ενός τηλεφωνικού καταλόγου.
  
 <code txt telephone-list.txt> <code txt telephone-list.txt>
Line 69: Line 69:
 } }
 </code> </code>
- 
-<WRAP tip 80% center round> 
-H δήλωση της μορφής  
-<code java> 
-  try { 
-    // some code here 
-  } catch(Exception ex) { 
-    ex.printStackTrace(); 
-  } 
-</code> 
- 
-δηλώνει την πιθανή ύπαρξη ενός exception στον κώδικα που περιέχεται μέσα στο try μπλοκ. Τη χρήση των exceptions θα την δούμε αναλυτικά στη συνέχεια. 
-</WRAP> 
  
 ===== Χρησιμοποιώντας την κλάση Scanner ===== ===== Χρησιμοποιώντας την κλάση Scanner =====
Line 155: Line 142:
  
  
-===== Διαβάζοντας δυαδικά δεδομένα από αρχείο ===== +Προηγούμενο[[:java:class_file Η κλάση File ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:write_to_file | Γράφοντας σε αρχείο κειμένου ]] |
- +
-Εκτός από διάβασμα αρχείων κειμένου όπως αυτά που είδαμε παραπάνω ή διάβασμα από την κονσόλα υπάρχει η πιθανόντητα να θέλετε να διαβάσετε δυαδικά αρχεία. Τα δυαδικά αρχεία περιέχουν πληροφορία η οποία δεν μπορεί να κωδικοποιηθεί σε χαρακτήρες. Παραδείγματα δυαδικών αρχείων είναι μία εικόνα (jpg, png κλπ), ένα video (οποιουδήποτε format), ένα αρχείο pdf, ένα αρχείο MSWord, MSExcel κ.α. Σε αυτές τις περιπτώσεις το διάβασμα της πληροφορίας με τις κλάσεις που παρουσιάσαμε προηγούμενα δεν είναι δυνατόν να υλοποιηθεί.  +
- +
-Αντ' αυτού υπάρχει η κλάση [[https://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html|java.io.FileInputStream]] η οποία επιτρέπει το διάβασμα δυαδικών αρχείων ως εξής: +
- +
-**Κατασκευαστές** +
-  * ''FileInputStream(String filename)'' : Δημιουργεί ένα αντικείμενο της κλάσης //FileInputStream// από το αρχείο με όνομα filename. Στη θέση του //String// filename θα πρέπει να βάλετε το path προς το αρχείο και όχι μόνο το όνομα του. +
-  * ''FileInputStream(File file)'' : Δημιουργεί ένα αντικείμενο της κλάσης //FileInputStream// από ένα αντικείμενο της κλάσης //File//. +
- +
-**Μέθοδοι** +
-  * ''int read(byte[] b)'' Διαβάζετε ένα αρχείο μέσω της μεθόδου read. Σε κάθε διάβασμα αποθηκεύονται τα δεδομενα σας στον πίνακα //b//. Πριν την κλήση της read, θα πρέπει να έχετε αρχικοποιήσει τον πίνακα //b// σε ένα μέγεθος της επιλογής σας, προκειμένου να μπορούν να αποθηκευτούν τα δεδομένα σας σε αυτόν.  +
-    * Η μέθοδος διαβάζει το πολύ //b.length// bytes.  +
-    * Επιστρέφει τον αριθμό των bytes που διάβασε. +