Java InputStream (med exempel)

I denna handledning lär vi oss om klassen Java InputStream och dess metoder med hjälp av ett exempel.

Paketets InputStreamklass 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 InputStreamkan 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.InputStreampaketet. 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 InputStreamklass 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ömmen
  • read(byte() array) - läser byte från strömmen och lagras i den angivna matrisen
  • available() - returnerar antalet tillgängliga byte i ingångsströmmen
  • mark() - markerar positionen i ingångsströmmen till vilken data har lästs
  • reset() - återställer kontrollen till den punkt i strömmen där märket sattes
  • markSupported()- kontrollerar om mark()och reset()metoden uppbäres i strömmen
  • skips() - hoppar över och kasserar det angivna antalet byte från ingångsströmmen
  • close() - stänger ingångsströmmen

Exempel: InputStream med FileInputStream

Här är hur vi kan implementera InputStreammed FileInputStreamklassen.

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 FileInputStreamklassen. 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).

Intressanta artiklar...