Escrevendo um array de bytes a partir de uma posição específica de um arquivo

1 resposta
mizumoto

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?

1 Resposta

T

Use java.io.RandomAccessFile.

Criado 12 de setembro de 2008
Ultima resposta 12 de set. de 2008
Respostas 1
Participantes 2