Besoin d'optimiser une lecture de fichier
Bien le bonjour,
voilà, j'ai une petite question : j'ai une classe qui serte à charger en mémoire un fichier Shape ESRI (je suis sur du développement d'une application de controle de trafic dont la partie carto est géoréférencée, mais bon tout cela n'est pas le problème) le truc, c'est que cette classe en question à été codée à l'époque de java 1.3 (voir 1.2) et donc elle n'a pas évoluée depuis, donc bien que la recompilation en java 1.5 puis 1.6 à fait un énorme bien (on passe de 7min de chargement à 2min) je pense qu'il doit y avoir un moyen d'optimiser le code :
Premièrement, le fichier est lu avec çà
Code:
_currentStream = new DataInputStream(new FileInputStream(file));
Existe-t-il aujourd'hui une api plus rapide (en peut comme passer par un StringBuffer) ??
Autre chose :
dans cette classe il y a beaucoup de truc dans ce genre :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| private final double readDouble() throws IOException
{
long l = 0;
long current;
int i;
int shift = 0;
for(i = 0; i < 8; i++)
{
current = _currentStream.readUnsignedByte();
l += (current << shift);
shift += 8;
}
return Double.longBitsToDouble(l);
} |
Ou même
Code:
_currentStream.skipBytes(4);
et
Code:
_currentStream.readInt();
J'espère qu'il est possible de faire en sorte que tout ce code puisse être modifié par une version plus vélosse.
Merci d'avance.