java:read_from_file

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
java:read_from_file [2016/03/19 06:08]
gthanos [Παράδειγμα ανάγνωσης με χρήση της Scanner]
java:read_from_file [2016/03/26 05:16]
gthanos [Παράδειγμα ανάγνωσης με χρήση της Scanner]
Line 111: Line 111:
 <code java ReadWithScanner.java>​ <code java ReadWithScanner.java>​
 import java.util.Scanner;​ import java.util.Scanner;​
 +import java.io.File;​
  
 public class ReadWithScanner { public class ReadWithScanner {
   public static void main(String []args) {   public static void main(String []args) {
-    String ​name=null, number=null;​+    String ​firstname=null,​ lastname=null, number=null;​
     int i=0;     int i=0;
     TelephoneNumber numbers[] = new TelephoneNumber[5];​     TelephoneNumber numbers[] = new TelephoneNumber[5];​
     try {     try {
-      Scanner sc = new Scanner("​telephone-list.txt"​);​ +      Scanner sc = new Scanner(new File("​telephone-list.txt"​)); 
-     +       
-       ​while( sc.hasNext() ) { +      while( sc.hasNext() ) {         
-         if( name == null )  +        ​firstname ​sc.next(); 
-         name = sc.next();​ +        ​lastname ​= sc.next();​ 
-        ​else +        number = sc.next(); 
-          ​number = sc.next();​ + 
-        if( name !null && number !null{ +        if( lastname.charAt( lastname.length() -1 ) == ',' ​)  
-          numbers[i++] = new TelephoneNumber(name, number); +          ​lastname = lastname.substring(0,​ lastname.length() -1); 
-          number = null; + 
-          name = null; +        ​numbers[i++] = new TelephoneNumber(firstname+"​ "​+lastname, number);
-        }+
       }       }
-    }catch(Exception ex) {+    } catch(Exception ex) {
       ex.printStackTrace();​       ex.printStackTrace();​
     }     }
-    for(Telephone number ​: numbers) { +    for(TelephoneNumber telephoneNumber ​: numbers) { 
-      System.out.println(number);+      System.out.println(telephoneNumber);
     }     }
   }   }
 } }
 </​code>​ </​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>​
 +
 +
 +===== Διαβάζοντας δυαδικά δεδομένα από αρχείο =====
 +
 +Εκτός από διάβασμα αρχείων κειμένου όπως αυτά που είδαμε παραπάνω ή διάβασμα από την κονσόλα υπάρχει η πιθανόντητα να θέλετε να διαβάσετε δυαδικά αρχεία. Τα δυαδικά αρχεία περιέχουν πληροφορία η οποία δεν μπορεί να κωδικοποιηθεί σε χαρακτήρες. Παραδείγματα δυαδικών αρχείων είναι μία εικόνα (jpg, png κλπ), ένα video (οποιουδήποτε format), ένα αρχείο pdf, ένα αρχείο MSWord, MSExcel κ.α. Σε αυτές τις περιπτώσεις το διάβασμα της πληροφορίας με τις κλάσεις που παρουσιάσαμε προηγούμενα δεν είναι δυνατόν να υλοποιηθεί. ​
 +
 +Αντ'​ αυτού υπάρχει η κλάση [[https://​docs.oracle.com/​javase/​7/​docs/​api/​java/​io/​FileInputStream.html|java.io.FileInputStream]] η οποία επιτρέπει το διάβασμα δυαδικών αρχείων ως εξής:
 +
 +
  
java/read_from_file.txt · Last modified: 2017/04/28 11:15 by gthanos