Ebben az oktatóanyagban példák segítségével megismerhetjük a Java ByteArrayInputStream-et és annak módszereit.
A csomag ByteArrayInputStreamosztálya java.iohasználható a bemeneti adatok tömbjének olvasására (bájtokban).
Kiterjeszti az InputStreamabsztrakt osztályt.

Megjegyzés : Itt ByteArrayInputStreama bemeneti adatfolyam bájt tömb felhasználásával jön létre. Belső tömböt tartalmaz az adott bájt tömb adatainak tárolására.
Hozzon létre egy ByteArrayInputStream fájlt
A bájt tömb bemeneti adatfolyam létrehozásához java.io.ByteArrayInputStreamelőször importálnunk kell a csomagot. A csomag importálása után a következőképpen hozhatunk létre bemeneti adatfolyamot.
// Creates a ByteArrayInputStream that reads entire array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr);
Itt létrehoztunk egy bemeneti adatfolyamot, amely a arrtömb teljes adatait kiolvassa . Hozhatunk létre azt a bemeneti adatfolyamot is, amely csak néhány adatot olvas ki a tömbből.
// Creates a ByteArrayInputStream that reads a portion of array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr, int start, int length);
Itt a bemeneti adatfolyam kiolvassa a hosszúságnak megfelelő bájtok számát a tömbből a kiindulási helyzetből kiindulva.
A ByteArrayInputStream módszerei
Az ByteArrayInputStreamosztály megvalósításokat biztosít az InputStreamosztályban jelen lévő különböző módszerek számára .
read () módszer
read()- beolvassa az egyetlen bájtot a bemeneti adatfolyamban lévő tömbbőlread(byte() array)- olvassa a bájtokat a bemeneti adatfolyamból és tárolja a megadott tömbbenread(byte() array, int start, int length)- beolvassa a hosszúsággal megegyező bájtok számát az adatfolyamból és tárolja a megadott tömbben a pozíció kezdetétől kezdődően
Példa: ByteArrayInputStream az adatok olvasásához
import java.io.ByteArrayInputStream; public class Main ( public static void main(String() args) ( // Creates an array of byte byte() array = (1, 2, 3, 4); try ( ByteArrayInputStream input = new ByteArrayInputStream(array); System.out.print("The bytes read from the input stream: "); for(int i= 0; i < array.length; i++) ( // Reads the bytes int data = input.read(); System.out.print(data + ", "); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Kimenet
A bemeneti adatfolyamból leolvasható bájtok: 1, 2, 3, 4,
A fenti példában létrehoztunk egy byte tömböt bemeneti folyam elemzi input.
ByteArrayInputStream input = new ByteArrayInputStream(array);
Itt a bemeneti adatfolyam tartalmazza a megadott tömb összes adatait. A bemeneti adatfolyam adatainak kiolvasásához a read()módszert használtuk .
elérhető () módszer
Ahhoz, hogy megkapjuk a rendelkezésre álló bájtok számát a bemeneti adatfolyamban, használhatjuk a available()módszert. Például,
import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( // Creates an array of bytes byte() array = ( 1, 2, 3, 4 ); try ( ByteArrayInputStream input = new ByteArrayInputStream(array); // Returns the available number of bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 2 bytes from the input stream input.read(); input.read(); // Returns the available number of bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Kimenet
Elérhető bájtok az elején: 4 Elérhető bájtok a végén: 2
A fenti példában
- A
available()módszerrel megvizsgáltuk a rendelkezésre álló bájtok számát a bemeneti adatfolyamban. - Ezután
read()kétszer használtuk a módszert, hogy 2 bájtot olvassunk a bemeneti adatfolyamból. - A 2 bájt elolvasása után ellenőriztük a rendelkezésre álló bájtokat. Ezúttal a rendelkezésre álló bájtok 2-vel csökkentek.
skip () módszer
A megadott számú bájt elvetéséhez és kihagyásához használhatjuk a skip()módszert. Például,
import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( // Create an array of bytes byte() array = ( 1, 2, 3, 4 ); try ( ByteArrayInputStream input = new ByteArrayInputStream(array); // Using the skip() method input.skip(2); System.out.print("Input stream after skipping 2 bytes: "); int data = input.read(); while (data != -1) ( System.out.print(data + ", "); data = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Kimenet
Bemeneti adatfolyam 2 bájt kihagyása után: 3, 4,
A fenti példában a skip () metódust alkalmaztuk 2 bájt adat kihagyására a bemeneti adatfolyamból. Ezért az 1. és 2. nem olvasható ki a bemeneti adatfolyamból.
bezár () módszer
A bemeneti adatfolyam bezárásához használhatjuk a close()módszert.
A close()módszer azonban az ByteArrayInputStreamosztályban nincs hatással . Ennek az osztálynak a módszereit a close()módszer meghívása után is használhatjuk .
A ByteArrayInputStream egyéb módszerei
| Mód | Leírások |
|---|---|
finalize() | biztosítja a close()módszer meghívását |
mark() | jelöli azt a pozíciót a bemeneti adatfolyamban, amelyre az adatokat beolvasták |
reset() | visszaadja a vezérlést a bemeneti adatfolyam azon pontjára, ahol a jelölést beállították |
markSupported() | ellenőrzi, hogy a bemeneti adatfolyam támogatja - e mark()ésreset() |
További információkért látogasson el a Java ByteArrayInputStream oldalra (hivatalos Java dokumentáció).








