Pergunta

Eu estou escrevendo alguns implementação de ensaio de acesso a dados e eu preciso de acesso aleatório para o conteúdo do arquivo. Aqui está o código:

RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rwd");
final byte b[] = IOUtils.toByteArray(source);
randomAccessFile.write(b, (int) offset, size);

onde compensados ??tem tipo longa. Por RandomAccessFile não fornece método:

public void write(byte b[], long off, int len)

?

Como substituir essa questão?

Foi útil?

Solução

Eu acho que você está procurando o método seek.

O deslocamento em write é um deslocamento para a matriz. Arrays tem offsets int. Houve propostas para "longos matrizes", mas foram estes implementado, você ainda precisa de uma sobrecarga.

arquivos mapeados em NIO tem um problema em que o MappedByteBuffer.position equivalente por algum motivo só usa int. Consulte CR 6347833 (9 votos).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top