PDA

View Full Version : Java - Lettura di file estramamente lenta


frappo77
20-10-2009, 08:38
Ciao a tutti, ho un problema. Ho un programma che memorizza oggetti Serializable in un file. Quando leggo e salvo in un file locale sul mio PC l'operazione procede bene. Quando invece leggo il file da una cartella in rete le operazioni rallentano di brutto. Preciso che il file si trova in una cartella condivisa su un "Win Server 2003". Aggiungo inoltre che se il file si trova invece su una cartella condivisa di un altro PC della rete con "Win XP" l'operazione di lettura procede veloce come se il file fosse locale.

Il mio codice è il seguente:

public void loadFile(File file) throws Exception {
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
....
....
MyObject obj = (MyObject )ois.readObject();
....
....
}

Qualcuno può aiutarmi?
:confused: :help:

PGI-Bis
20-10-2009, 14:35
In teoria se non stai leggendo da una sorgente con buffer o direttamente dalla memoria dovresti aggiungere un flusso con buffer alla tua catena di flussi:

FileInputStream fis = new FileInputStream(file);
BufferedInputStream bin = new BufferedInputStream(fis);
ObjectInputStream ois = new ObjectInputStream(bin);

Dico in teoria perchè il problema che riscontri riguarda non tanto una lettura stentata in sè quanto una notevole differenza tra la lettura di un file locale o condiviso con un sistema operativo X rispetto alla lettura di un file in una cartella condivisa con un sistema operativo Y.

Una prova col buffer la farei comunque.