Государственный



бет3/25
Дата05.04.2024
өлшемі4.07 Mb.
#497748
1   2   3   4   5   6   7   8   9   ...   25
Java. Потоки ввода-вывода. Работа с файлами. Кравчук А.С., Кравчук А.И., Кремень Е.В

Потоки байтов

Класс InputStream


Класс InputStream является базовым для всех классов, управляющих байтовыми потоками ввода. Рассмотрим некоторые его методы:



    • int available() – оценивает и возвращает количество байтов, которое можно прочитать (или пропустить) из данного входного потока без блокировки.

  • void close() - закрывает поток и освобождает все системные ресурсы, связанные с потоком. Возможна генерация исключений IOException;

  • int read() – метод является абстрактным, и должен быть определен в классах-наследниках. Предназначен для считывания ровно одного байта из потока, но возвращает при этом значение типа int. В случае если считывание произошло успешно, то возвращаемое значение лежит в диапазоне от 0 до 255 и представляет собой полученный байт, дополненный нулями до четырех байтов, которые отводятся под тип int. В случае если достигнут конец потока, то возвращаемое значение равно -1. Если считать данные из потока не удается из-за каких-либо ошибок или сбоев, то генерируется исключение IOException.

  • int read(byte[] buffer) - считывает байты из потока в массив buffer. После чтения возвращает число считанных байтов. Если ни одного байта не было считано, то возвращается число -1. Выбрасывает исключение IOException, если произошла ошибка ввода-вывода и NullPointerException, если buffer имеет значение null.

  • int read(byte[] buffer, int offset, int length) - считывает некоторое количество байтов, меньше либо равное length (предпринимается попытка прочитать length байтов, но реально может быть прочитано меньшее число), из потока в массив buffer. При этом считанные байты помещаются в массиве, начиная со смещения offset, то есть с элемента buffer[offset]. Метод возвращает число успешно прочитанных байтов. Если параметр length равен нулю, то байты не считываются, и возвращаемое значение также равно нулю. Если ни одного байта не было считано,

поскольку был достигнут конец файла, то возвращается число
-1. Возможна генерация исключений IOException (при ошибках ввода-вывода или если входной поток был закрыт) или NullPointerException (когда buffer равен null), IndexOutOfBoundsException (если offset<0, length<0 или length> buffer.length – offset).

  • byte[] readAllBytes() считывает все оставшиеся байты из входного потока;

  • long skip(long number) - пропускает в потоке при чтении некоторое количество байт, которое меньше либо равно number. Метод может по разным причинам пропускать меньшее количество байтов, например 0, если достигнут конец файла до того, как number байтов были пропущены. Методом возвращается фактическое количество пропущенных байтов. Если number отрицательно, метод для класса InputStream всегда возвращает 0, и ни один байт не пропускается. Переопределение данного метода в некоторых подклассах могут по-разному обрабатывать отрицательное значение формального параметра number.





Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   25




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет