This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
java:read_from_file [2016/03/26 05:16] gthanos [Παράδειγμα ανάγνωσης με χρήση της Scanner] |
java:read_from_file [2017/04/28 11:15] (current) gthanos [Παράδειγμα διαβάσματος από δυαδικό αρχείο] |
||
|---|---|---|---|
| Line 160: | Line 160: | ||
| Αντ' αυτού υπάρχει η κλάση [[https://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html|java.io.FileInputStream]] η οποία επιτρέπει το διάβασμα δυαδικών αρχείων ως εξής: | Αντ' αυτού υπάρχει η κλάση [[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 που διάβασε. | ||
| + | |||
| + | ==== Παράδειγμα διαβάσματος από δυαδικό αρχείο ==== | ||
| + | |||
| + | Το παρακάτω πρόγραμμα διαβάζει το όνομα ενός αρχείου από το πληκτρολόγιο και στη συνέχεια διαβάζει το περιεχόμενο του αρχείου ως δυαδικό αρχείο. | ||
| + | |||
| + | <code java ReadBinFile.java> | ||
| + | import java.io.*; | ||
| + | import java.util.*; | ||
| + | |||
| + | public class ReadBinFile { | ||
| + | public static void main(String [] args) { | ||
| + | | ||
| + | Scanner sc = new Scanner(System.in); | ||
| + | System.out.print("Enter filename: "); | ||
| + | String readFilename = sc.next(); | ||
| + | File readFile = new File(readFilename); | ||
| + | | ||
| + | if( !readFile.isFile() ) { | ||
| + | System.err.println("Input file does not exist or is not a regular file!"); | ||
| + | return; | ||
| + | } | ||
| + | if( !readFile.canRead() ) { | ||
| + | System.err.println("Input file is not readable!"); | ||
| + | return; | ||
| + | } | ||
| + | | ||
| + | try { | ||
| + | byte []buffer = new byte[2048]; | ||
| + | FileInputStream in = new FileInputStream(readFile); | ||
| + | int read_len; | ||
| + | while( (read_len = in.read(buffer)) != -1 ) { | ||
| + | | ||
| + | } | ||
| + | | ||
| + | in.close(); | ||
| + | } catch( IOException ex ) { | ||
| + | ex.printStackTrace(); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | |Προηγούμενο: [[ java:class_file | Η κλάση File ]] | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:write_to_file | Γράφοντας σε αρχείο]] | | ||