Java InputStream (με παράδειγμα)

Σε αυτό το σεμινάριο, θα μάθουμε για την κλάση Java InputStream και τις μεθόδους της με τη βοήθεια ενός παραδείγματος.

Η InputStreamκλάση του java.ioπακέτου είναι μια αφηρημένη superclass που αντιπροσωπεύει μια ροή εισόδου bytes.

Εφόσον InputStreamείναι μια αφηρημένη τάξη, δεν είναι από μόνη της χρήσιμη. Ωστόσο, οι υποκατηγορίες του μπορούν να χρησιμοποιηθούν για την ανάγνωση δεδομένων.

Υποκατηγορίες του InputStream

Για να χρησιμοποιήσουμε τη λειτουργικότητα του InputStream, μπορούμε να χρησιμοποιήσουμε τις υποκατηγορίες του. Κάποιοι από αυτούς είναι:

  • FileInputStream
  • ByteArrayInputStream
  • ObjectInputStream

Θα μάθουμε για όλες αυτές τις υποκατηγορίες στο επόμενο σεμινάριο.

Δημιουργήστε ένα InputStream

Για να δημιουργήσουμε ένα InputStream, πρέπει java.io.InputStreamπρώτα να εισαγάγουμε το πακέτο. Μόλις εισαγάγουμε το πακέτο, εδώ είναι πώς μπορούμε να δημιουργήσουμε τη ροή εισόδου.

 // Creates an InputStream InputStream object1 = new FileInputStream(); 

Εδώ, δημιουργήσαμε μια ροή εισόδου χρησιμοποιώντας FileInputStream. Είναι επειδή InputStreamείναι μια αφηρημένη τάξη. Ως εκ τούτου δεν μπορούμε να δημιουργήσουμε ένα αντικείμενο InputStream.

Σημείωση : Μπορούμε επίσης να δημιουργήσουμε μια ροή εισόδου από άλλες υποκατηγορίες του InputStream.

Μέθοδοι του InputStream

Η InputStreamτάξη παρέχει διαφορετικές μεθόδους που εφαρμόζονται από τις υποκατηγορίες της. Ακολουθούν μερικές από τις κοινώς χρησιμοποιούμενες μεθόδους:

  • read() - διαβάζει ένα byte δεδομένων από τη ροή εισόδου
  • read(byte() array) - διαβάζει byte από τη ροή και αποθηκεύει στον καθορισμένο πίνακα
  • available() - επιστρέφει τον αριθμό των διαθέσιμων byte στη ροή εισόδου
  • mark() - επισημαίνει τη θέση στη ροή εισόδου μέχρι την οποία έχουν διαβαστεί τα δεδομένα
  • reset() - επιστρέφει το στοιχείο ελέγχου στο σημείο της ροής όπου ορίστηκε το σήμα
  • markSupported()- ελέγχει εάν η μέθοδος mark()και η reset()μέθοδος υποστηρίζονται στη ροή
  • skips() - παραλείπει και απορρίπτει τον καθορισμένο αριθμό byte από τη ροή εισόδου
  • close() - κλείνει τη ροή εισόδου

Παράδειγμα: InputStream χρησιμοποιώντας το FileInputStream

Εδώ είναι πώς μπορούμε να εφαρμόσουμε InputStreamχρησιμοποιώντας την FileInputStreamτάξη.

Ας υποθέσουμε ότι έχουμε ένα αρχείο με όνομα input.txt με το ακόλουθο περιεχόμενο.

 This is a line of text inside the file. 

Ας προσπαθήσουμε να διαβάσουμε αυτό το αρχείο χρησιμοποιώντας FileInputStream(μια υποκατηγορία InputStream).

 import java.io.FileInputStream; import java.io.InputStream; public class Main ( public static void main(String args()) ( byte() array = new byte(100); try ( InputStream input = new FileInputStream("input.txt"); System.out.println("Available bytes in the file: " + input.available()); // Read byte from the input stream input.read(array); System.out.println("Data read from the file: "); // Convert byte array into string String data = new String(array); System.out.println(data); // Close the input stream input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Παραγωγή

 Available bytes in the file: 35 Data read from the file: This is a line of text inside the file 

Στο παραπάνω παράδειγμα, δημιουργήσαμε μια ροή εισόδου χρησιμοποιώντας την FileInputStreamκλάση. Η ροή εισόδου συνδέεται με το αρχείο input.txt .

 InputStream input = new FileInputStream("input.txt"); 

Για να διαβάσετε δεδομένα από το αρχείο input.txt , έχουμε εφαρμόσει αυτές τις δύο μεθόδους.

 input.read(array); // to read data from the input stream input.close(); // to close the input stream 

Για να μάθετε περισσότερα, επισκεφθείτε το Java InputStream (επίσημη τεκμηρίωση Java).

ενδιαφέροντα άρθρα...