Ler bytesd de um arquivo

Galera tenho um InputStream ai o que eu quero.

Exemplo: Tenho um arquivo qualquer, ai pego o tamanho em bytes dele com:

tamanhoArquivo = fin.getChannel().size();

fin é um FileInputStream até ai acho que esta correto, é tamanho em bytes que ele retorna ne ?

No meu caso ele retorn 174

Quero ler esse arquivo por exemplo, só do byte 50 ao 174 entende.

tentei assim:

byte[] bytes = new byte[200];
in.read(bytes,50,174);
outFile.write(bytes);

mas dá pau, bom o que posso fazer é ficar lendo ele em um for, mas deve ter outro jeito.

Bom aguardo respostas, valeu pessoal
Abraços

Use “skip”

Entendo, pelo que li skip(49) por exemplo me retornaria apenas do 50 até o 174, mas e se eu quiser ler do 0 ao 50 ?

abraços valeu a resposta

Se você precisa “andar” sobre o arquivo (ou seja, ir para qualquer posição dele), use RandomAccessFile.