Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Класс Java ByteArrayInputStream

Класс Java ByteArrayInputStream

В этом руководстве мы узнаем о Java ByteArrayInputStream и его методах с помощью примеров.

ByteArrayInputStream класс java.io package можно использовать для чтения массива входных данных (в байтах).

Он расширяет InputStream абстрактный класс.

ПримечаниеByteArrayInputStream , входной поток создается с использованием массива байтов. Он включает в себя внутренний массив для хранения данных этого конкретного массива байтов.

<час>

Создать 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);

Здесь входной поток считывает количество байтов, равное length из массива, начиная с start положение.

<час>

Методы ByteArrayInputStream

ByteArrayInputStream класс предоставляет реализации для различных методов, представленных в InputStream класс.

Метод чтения()

Пример:ByteArrayInputStream для чтения данных

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

Вывод

The bytes read from the input stream: 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();
    }
  }
}

Вывод

Available bytes at the beginning: 4
Available bytes at the end: 2

В приведенном выше примере

  1. Мы использовали available() метод для проверки количества доступных байтов во входном потоке.
  2. Затем мы использовали read() метод 2 раза, чтобы прочитать 2 байта из входного потока.
  3. Теперь, прочитав 2 байта, мы проверили доступные байты. На этот раз доступный байт уменьшился на 2.
<час>

Метод skip()

Чтобы отбросить и пропустить указанное количество байтов, мы можем использовать 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();
    }
  }
}

Вывод

Input stream after skipping 2 bytes: 3, 4,

В приведенном выше примере мы использовали skip() способ пропустить 2 байта данных из входного потока. Отсюда 1 и 2 не считываются из входного потока.

<час>

Метод close()

Чтобы закрыть входной поток, мы можем использовать close() метод.

Однако close() метод не действует в ByteArrayInputStream учебный класс. Мы можем использовать методы этого класса даже после close() вызывается метод.

<час>

Другие методы ByteArrayInputStream

Методы Описания
finalize() гарантирует, что close() вызывается метод
mark() отмечает позицию во входном потоке, до которой были прочитаны данные
reset() возвращает элемент управления в точку во входном потоке, где была установлена ​​метка
markSupported() проверяет, поддерживает ли входной поток mark() и reset()

Чтобы узнать больше, посетите страницу Java ByteArrayInputStream (официальная документация по Java).


java

  1. Массивы копирования Java
  2. Окончательное ключевое слово Java
  3. Оператор экземпляра Java
  4. Вложенный статический класс Java
  5. Анонимный класс Java
  6. Одноэлементный класс Java
  7. Java-отражение
  8. Класс Java ObjectOutputStream
  9. Класс сканера Java
  10. Дженерики Java