Это возможно, но, насколько я знаю, не с классами из API.
Вы можете сделать это вручную - откройте его как BufferedInputStream , который поддерживает mark
/ reset
. Вы читаете блок за блоком (byte[]
) и анализируете его как ASCII. В конце концов вы накапливаете его в буфере, пока не нажмете маркер.
Но перед вами read
вы звоните mark
. Если вы считаете, что прочитали все, что вам нужно в ASCII, вы звоните reset
, а затем звоните read
, чтобы выгрузить оставшуюся часть ASCII. И теперь у вас есть BufferedInputStream
(то есть InputStream
), готовый для чтения двоичной части файла.