Метод skip класса InputStream
Метод skip класса InputStream пропускает
и отбрасывает указанное количество байтов из входного
потока. Метод принимает один параметр - число байтов,
которые нужно пропустить. Возвращает метод фактическое
количество пропущенных байтов, которое может быть
меньше запрошенного, если поток закончился раньше.
Синтаксис
inputStream.skip(n)
Пример
Давайте создадим поток из массива байтов и пропустим
первые 2 байта, а затем прочитаем оставшиеся:
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
public class Main
{
public static void main(String[] args) throws IOException
{
byte[] data = "abcde".getBytes();
InputStream is = new ByteArrayInputStream(data);
long skipped = is.skip(2);
System.out.println("Skipped: " + skipped);
int b;
while ((b = is.read()) != -1)
{
System.out.println((char) b);
}
}
}
Результат выполнения кода:
"Skipped: 2"
"c"
"d"
"e"
Пример
Давайте попробуем пропустить больше байтов, чем есть в потоке, и посмотрим на возвращаемое значение:
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
public class Main
{
public static void main(String[] args) throws IOException
{
byte[] data = "12345".getBytes();
InputStream is = new ByteArrayInputStream(data);
long skipped = is.skip(100);
System.out.println("Skipped: " + skipped);
int b = is.read();
System.out.println("Read after skip: " + b);
}
}
Результат выполнения кода:
"Skipped: 5"
"Read after skip: -1"
Смотрите также
-
класс
InputStream,
который представляет входной поток байтов -
метод
read,
который читает байт из потока -
метод
readAllBytes,
который читает все байты из потока -
метод
available,
который возвращает количество доступных байтов