Мое приложение читает png-подобный файл (в байтах) и сохраняет байты в байтовый массив. Это метод я использую:Пропустить байты в ByteArray Java
public static byte[] read(File file) throws IOException {
byte []buffer = new byte[(int) file.length()];
InputStream ios = null;
try {
ios = new FileInputStream(file);
if (ios.read(buffer) == -1) {
throw new IOException("EOF reached while trying to read the whole file");
}
} finally {
try {
if (ios != null)
ios.close();
} catch (IOException e) {
}
}
return buffer;
}
После этого, я хочу, чтобы извлечь образцы этого ByteArray.
Он следует шаблону файла png:
Длина 4 байта + 4 байта + данные (необязательно) + CRC и повторяет эту схему.
Я хочу сделать что-то вроде do while: чтение длины + типа. Если меня не интересует тип, я хочу пропустить этот кусок. Но я боюсь, потому что не могу найти пропустить метод для byteArray [].
У кого-нибудь есть идея, как действовать дальше?
Я видел этот класс раньше. Но я не знаю, как его использовать. Должен ли я заменить свой FileInputStream на мой ByteArrayInputStream? – tmylamoule
Если нет ничего важного для вас в FileInputStream, вы можете просто заменить его, оба они имеют один и тот же суперкласс. Достаточно ли такого примера для вас http://www.tutorialspoint.com/java/io/bytearrayinputstream_skip.htm? – Czarny
Да, спасибо за помощь. Я работаю над этим. Вы получите отзыв! ;) – tmylamoule