решил таким методом: int size = fileInputStream.available(); byte[] buffer1 = new byte[size - size/2]; byte[] buffer2 = new byte[size/2]; fileInputStream.read(buffer1); fileInputStream.read(buffer2); но не понял один момент.. По моей логике fileInputStream.read прочитал первый раз файл в buffer1 и вроде бы второй раз должен читать с начала. Или метод запоминает, где закончил читать и продолжает в buffer2? Я не понял механику.