I denna handledning lär vi oss om klassen Java InputStream och dess metoder med hjälp av ett exempel.
Paketets InputStream
klass java.io
är en abstrakt superklass som representerar en ingångsström av byte.
Eftersom det InputStream
är en abstrakt klass är det inte användbart i sig. Emellertid kan dess underklasser användas för att läsa data.
Underklasser av InputStream
För att använda funktionaliteten hos InputStream
kan vi använda dess underklasser. Några av dem är:
- FileInputStream
- ByteArrayInputStream
- ObjectInputStream
Vi lär oss om alla dessa underklasser i nästa handledning.
Skapa en InputStream
För att skapa en InputStream måste vi först importera java.io.InputStream
paketet. När vi väl har importerat paketet, här är hur vi kan skapa inmatningsströmmen.
// Creates an InputStream InputStream object1 = new FileInputStream();
Här har vi skapat en ingångsström med FileInputStream
. Det är för att det InputStream
är en abstrakt klass. Därför kan vi inte skapa ett objekt av InputStream
.
Obs! Vi kan också skapa en ingångsström från andra underklasser av InputStream
.
Metoder för InputStream
Den InputStream
klass tillhandahåller olika metoder som implementeras av dess underklasser. Här är några av de vanliga metoderna:
read()
- läser en byte med data från ingångsströmmenread(byte() array)
- läser byte från strömmen och lagras i den angivna matrisenavailable()
- returnerar antalet tillgängliga byte i ingångsströmmenmark()
- markerar positionen i ingångsströmmen till vilken data har lästsreset()
- återställer kontrollen till den punkt i strömmen där märket sattesmarkSupported()
- kontrollerar ommark()
ochreset()
metoden uppbäres i strömmenskips()
- hoppar över och kasserar det angivna antalet byte från ingångsströmmenclose()
- stänger ingångsströmmen
Exempel: InputStream med FileInputStream
Här är hur vi kan implementera InputStream
med FileInputStream
klassen.
Antag att vi har en fil med namnet input.txt med följande innehåll.
This is a line of text inside the file.
Låt oss försöka läsa den här filen med FileInputStream
(en underklass av 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(); ) ) )
Produktion
Available bytes in the file: 35 Data read from the file: This is a line of text inside the file
I exemplet ovan har vi skapat en ingångsström med FileInputStream
klassen. Ingångsströmmen är länkad till filen input.txt .
InputStream input = new FileInputStream("input.txt");
För att läsa data från filen input.txt har vi implementerat dessa två metoder.
input.read(array); // to read data from the input stream input.close(); // to close the input stream
För att lära dig mer, besök Java InputStream (officiell Java-dokumentation).