In questo tutorial, impareremo a conoscere la classe Java InputStream e i suoi metodi con l'aiuto di un esempio.
La InputStream
classe del java.io
pacchetto è 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.InputStream
prima 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 InputStream
classe fornisce diversi metodi che vengono implementati dalle sue sottoclassi. Ecco alcuni dei metodi comunemente usati:
read()
- legge un byte di dati dal flusso di inputread(byte() array)
- legge i byte dal flusso e li memorizza nell'array specificatoavailable()
- restituisce il numero di byte disponibili nel flusso di inputmark()
- segna la posizione nel flusso di input fino alla quale i dati sono stati lettireset()
- restituisce il controllo al punto del flusso in cui è stato impostato il segnomarkSupported()
- controlla se il metodomark()
ereset()
è supportato nel flussoskips()
- salta e scarta il numero specificato di byte dal flusso di inputclose()
- chiude il flusso di input
Esempio: InputStream utilizzando FileInputStream
Ecco come possiamo implementare InputStream
utilizzando la FileInputStream
classe.
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 FileInputStream
classe. 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).