Filechannel Map - non può estendere per la scrittura
-
24-12-2019 - |
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.
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?