Eu gostaria de saber como eu faço para escrever um array de bytes a partir de uma posição específica de um arquivo substituindo apenas parte do seu conteúdo.
Utilizando o FileOutputStream, só estou conseguindo escrever a partir do inicio do arquivo todo o seu conteúdo é perdido.
byte[] bt="teste".getBytes();
FileOutputStream fos=new FileOutputStream("/tmp/fos.txt");
fos.write(bt,2,5);
nesse exemplo, eu estou tentando escrever a string “teste” dentro de um arquivo, iniciando pelo byte 2 de um arquivo com um conteúdo qualquer
ao final da execução, o arquivo de saída é zerado e a seguinte mensagem de erro é exibida:
Exception in thread “main” java.lang.IndexOutOfBoundsException
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:260)
at tempapp.Main.main(Main.java:74)
Alguém poderia me ajudar a resolver esse problema, se possível mandando um exemplo?