Domanda

Aprendo un file di grandi dimensioni (~ 200 MB) con RandomAccessFile e quindi ottieni il canale per questo.Sto cercando di mappare alcuni dati per mappatiBuffer, ma sto ottenendo un'eccezione:

.

Channel non aperto per la scrittura - non può estendere il file per la dimensione richiesta.

Non riesco a capire, perché il metodo della mappa tenta di scrivere all'area di mappatura del file è inferiore alla dimensione del file!Perché sta cercando di estendere il file in questo caso?

Aggiornamento

Problema risolto, si è scoperto che pensavo che il terzo parametro indicato per la posizione dell'indice nel file, che era la lunghezza del buffer.

È stato utile?

Soluzione

DOC:

.

Parametri:

posizione la posizione all'interno del file in cui la regione mappata è di iniziare;deve essere non negativo

Dimensione La dimensione della regione deve essere mappata;deve essere non negativo e non maggiore di java.lang.integer.max_value

Che cosa hai esattamente la dimensione del file? Stai cercando di mappare offset + Dimensione che supera la dimensione del file?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top