Java InputStream (con esempio)

In questo tutorial, impareremo a conoscere la classe Java InputStream e i suoi metodi con l'aiuto di un esempio.

La InputStreamclasse del java.iopacchetto è una superclasse astratta che rappresenta un flusso di input di byte.

Poiché InputStreamè una classe astratta, non è utile di per sé. Tuttavia, le sue sottoclassi possono essere utilizzate per leggere i dati.

Sottoclassi di InputStream

Per utilizzare la funzionalità di InputStream, possiamo utilizzare le sue sottoclassi. Alcuni di loro sono:

  • FileInputStream
  • ByteArrayInputStream
  • ObjectInputStream

Impareremo a conoscere tutte queste sottoclassi nel prossimo tutorial.

Crea un InputStream

Per creare un InputStream, dobbiamo java.io.InputStreamprima importare il pacchetto. Una volta importato il pacchetto, ecco come possiamo creare il flusso di input.

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

Qui, abbiamo creato un flusso di input utilizzando FileInputStream. È perché InputStreamè una classe astratta. Quindi non possiamo creare un oggetto di InputStream.

Nota : possiamo anche creare un flusso di input da altre sottoclassi di InputStream.

Metodi di InputStream

La InputStreamclasse fornisce diversi metodi che vengono implementati dalle sue sottoclassi. Ecco alcuni dei metodi comunemente usati:

  • read() - legge un byte di dati dal flusso di input
  • read(byte() array) - legge i byte dal flusso e li memorizza nell'array specificato
  • available() - restituisce il numero di byte disponibili nel flusso di input
  • mark() - segna la posizione nel flusso di input fino alla quale i dati sono stati letti
  • reset() - restituisce il controllo al punto del flusso in cui è stato impostato il segno
  • markSupported()- controlla se il metodo mark()e reset()è supportato nel flusso
  • skips() - salta e scarta il numero specificato di byte dal flusso di input
  • close() - chiude il flusso di input

Esempio: InputStream utilizzando FileInputStream

Ecco come possiamo implementare InputStreamutilizzando la FileInputStreamclasse.

Supponiamo di avere un file denominato input.txt con il seguente contenuto.

 This is a line of text inside the file. 

Proviamo a leggere questo file usando FileInputStream(una sottoclasse di 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(); ) ) ) 

Produzione

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

Nell'esempio precedente, abbiamo creato un flusso di input utilizzando la FileInputStreamclasse. Il flusso di input è collegato al file input.txt .

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

Per leggere i dati dal file input.txt , abbiamo implementato questi due metodi.

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

Per saperne di più, visita Java InputStream (documentazione ufficiale di Java).

Articoli interessanti...