Јава БитеАрраиИнпутСтреам (са примерима)

У овом упутству ћемо научити о Јави БитеАрраиИнпутСтреам и њеним методама уз помоћ примера.

ByteArrayInputStreamКласа у java.ioпакету могу се користити за читање низ улазних података (у бајтовима).

Проширује InputStreamапстрактну класу.

Напомена : У ByteArrayInputStream, улазни ток се креира помоћу низа бајтова. Садржи интерни низ за чување података тог одређеног бајт поља.

Направите БитеАрраиИнпутСтреам

Да бисмо креирали ток улазног низа бајтова, прво морамо да увозимо java.io.ByteArrayInputStreamпакет. Једном када увозимо пакет, ево како можемо створити улазни ток.

 // Creates a ByteArrayInputStream that reads entire array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr); 

Овде смо креирали улазни ток који чита читаве податке из arrниза. Међутим, такође можемо створити улазни ток који чита само неке податке из низа.

 // Creates a ByteArrayInputStream that reads a portion of array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr, int start, int length); 

Овде улазни ток чита низ бајтова једнак дужини из низа почев од почетне позиције.

Методе БитеАрраиИнпутСтреам

ByteArrayInputStreamКласа обезбеђује имплементација за различитим методама присутни у InputStreamкласи.

реад () Метода

  • read() - чита један бајт из низа присутног у улазном току
  • read(byte() array) - чита бајтове из улазног тока и чува у наведеном низу
  • read(byte() array, int start, int length) - чита број бајтова једнак дужини из тока и чува у наведеном низу почев од почетка положаја

Пример: БитеАрраиИнпутСтреам за читање података

 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(); ) ) ) 

Оутпут

 Бајтови прочитани из улазног тока: 1, 2, 3, 4, 

У горњем примеру смо креирали улазни ток бајт поља са именом input.

 ByteArrayInputStream input = new ByteArrayInputStream(array); 

Овде улазни ток укључује све податке из наведеног низа. За читање података из улазног тока користили смо read()методу.

доступна () метода

Да бисмо добили број доступних бајтова у улазном току, можемо користити available()методу. На пример,

 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(); ) ) ) 

Оутпут

 Доступни бајтови на почетку: 4 Доступни бајтови на крају: 2 

У горњем примеру,

  1. Методу смо користили available()за проверу броја доступних бајтова у улазном току.
  2. Затим смо read()методу користили 2 пута за читање 2 бајта из улазног тока.
  3. Сада, након читања 2 бајта, проверили смо доступне бајтове. Овај пут су се доступни бајтови смањили за 2.

метода прескочи ()

Да бисмо одбацили и прескочили наведени број бајтова, можемо користити skip()методу. На пример,

 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(); ) ) ) 

Оутпут

 Улазни ток након прескакања 2 бајта: 3, 4, 

У горњем примеру, користили смо методу скип () да прескочимо 2 бајта података из улазног тока. Стога се 1 и 2 не читају из улазног тока.

цлосе () Метода

Да бисмо затворили улазни ток, можемо користити close()методу.

Међутим, close()метода нема ефекта у ByteArrayInputStreamнастави. Методе ове класе можемо користити и након што је close()метода позвана.

Остале методе БитеАрраиИнпутСтреам

Методе Описи
finalize() осигурава да је close()метода позвана
mark() означава позицију у улазном току до које су подаци прочитани
reset() враћа контролу на тачку у улазном току где је постављена ознака
markSupported() проверава да ли улазни ток подржава mark()иreset()

Да бисте сазнали више, посетите Јава БитеАрраиИнпутСтреам (званична Јава документација).

Занимљиви Чланци...