Java — Самоучитель

  • 15. Java — Массивы
  • 16. Java — Дата и время
  • 17. Java — Регулярные выражения
  • 18. Java — Методы
  • 19.2. Java — Класс ByteArrayInputStream: конструкторы и методы

    Класс ByteArrayInputStream позволяет использовать буфер в памяти как InputStream. Входным источником является массив байтов.

    Содержание

    [скрыть]

    Конструкторы

    Класс ByteArrayInputStream предоставляет следующие конструкторы.

    Конструктор и описание
    1ByteArrayInputStream(byte [] a)
    Конструктор принимает байтовый массив как параметр.
    2ByteArrayInputStream(byte [] a, int off, int len)
    Конструктор принимает массив байтов и два целочисленных значения, где off – первый байт для чтения, а len – количество байтов, которые нужно cчитать.

    Методы

    Если используйте объект ByteArrayInputStream, то у Вас есть под рукой вспомогательные методы, которые можно использовать для чтения потока или для выполнения других операций над потоком.

    Метод и описание
    1public int read()
    Метод считывает следующий байт данных из InputStream. Возвращает int как байт данных. Если это конец файла, он возвращает -1.
    2public int read(byte[] r, int off, int len)
    Метод считывает до len количество байт, начиная с off входного потока в массива. Возвращает общее количество прочитанных байтов. Если это конец файла, будет возвращен -1.
    3public int available()
    Получение количества байтов, которые могут быть прочитаны из этого потока ввода файла. Возвращает int, который получает количество прочитанных байтов.
    4public void mark(int read)
    Устанавливает текущую отмеченную позицию в потоке. Параметр возвращает максимальный предел байтов, который может быть прочитан до того, как помеченная позиция станет недействительной.
    5public long skip(long n)
    Пропускает 'n' количество байтов из потока. Возвращает фактическое количество пропущенных байтов.

    Пример

    Ниже приведен пример демонстрации классов ByteArrayInputStream и ByteArrayOutputStream.

    import java.io.*;
    public class TestByteStream {
    
       public static void main(String args[])throws IOException {
          ByteArrayOutputStream outputByte = new ByteArrayOutputStream(12);
    
          while(outputByte.size()!= 5) {
            outputByte.write("hello".getBytes()); 
          }
          byte a [] = outputByte.toByteArray();
          System.out.println("Вывод содержимого:");
          
          for(int i = 0 ; i < a.length; i++) {
             // Вывод символов
             System.out.print((char)a[i] + " "); 
          }
          System.out.println();
          
          int b;
          ByteArrayInputStream inputByte = new ByteArrayInputStream(a);
          System.out.println("Преобразование символов в верхний регистр:" );
          
          for(int j = 0 ; j < 1; j++) {
             while(( b = inputByte.read())!= -1) {
                System.out.println(Character.toUpperCase((char)b));
             }
             inputByte.reset(); 
          }
       }
    }
    

    Получим следующий результат:

    Вывод содержимого:
    h e l l o 
    Преобразование символов в верхний регистр:
    H
    E
    L
    L
    O
    
    Поделитесь:

    Доброго времени суток!
    На сайте проводились технические работы. Если будете испытываете трудности в отображение страницы, то попробуйте выполнить следующие действия: очистить полностью кеш сайта, очистить кеш страницы (CTRL+F5), открыть страницу в режиме инкогнито (CTRL+SHIFT+N).
    По всем вопросам пишите на почту webmaster@proglang.su

    О сайте

    Все материалы сайта proglang.su являются результатом труда его авторов. Копирование материалов в некоммерческих целях без указания источника в виде прямой ссылки на сайт proglang.su запрещено. Использование материалов в коммерческих целях разрешено только с письменного согласия автора. Нарушение авторских прав преследуется по закону. Мы это делаем, чтобы защитить плоды своих трудов от воровства. © 2014-2017

    Присоединяйтесь


    Обратная связь