This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
java:read_from_file [2016/03/26 05:16] gthanos [Παράδειγμα ανάγνωσης με χρήση της Scanner] |
java:read_from_file [2017/02/17 11:20] 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 | Γράφοντας σε αρχείο]] | | ||