Java IO

Signaler
Messages postés
3
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
25 janvier 2005
-
Messages postés
3
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
25 janvier 2005
-
Bonjour,


Programmeur Java, j'ai besoin pour une application d'utiliser les possibilités d'IO de l'API Java.


Pour planter le décor, disons que les besoins de mon application se rapprochent de ceux d'un traitement de texte classique : affichage du texte, recherche rapide et utilisation du texte pour des algorithmes caractérisés par de nombreux accès aux données, insertion/suppression de parties, sauvegardes régulières, etc... Les opérations se font sur des fichiers d'au plus quelques centaines de ko en texte pur...


Je me demandais donc : quelle est la manière la plus appropriée ET surtout la plus rapide de travailler sur un fichier en Java pour une telle application? Dois-je préférer java.nio ou java.io?


J'entrevois plusieurs possibilités :


-Utilisation directe du fichier (rien dans la mémoire, tout sur le disque)
Prob : trop d'accès disques, à proscrire pour une consultation rapide


-Mappage du fichier en mémoire grace aux Channel de java.nio


-Création d'une "énorme" String contenant le texte qui y est chargé au début
Prob : potentiellement lent, la String n'étant pas la panacée en matière de rapidité; lourdeur au chargement et lors des sauvegardes régulières entrainant un ralentissement de l'application.


-Idem avec un tableau de Char
Prob : mieux pour la rapidité des opérations, mais tout aussi lourd pour les sauvegardes et tout simplement horrible pour la maintenance (ajout/suppresion de caractères obligent à reconstruire le tableau régulièrement lorqu'il devient trop petit)


-Idem avec une structure chainée (liste) pour faciliter la maintenance
Prob : lourd pour la mémoire, meme prob lors du chargement/sauvegarde


Quelqu'un pourrait-il me conseiller? C-à-d, en bref, répondre à "Quel est le moyen le plus rapide d'effectuer des opérations de lecture/modification sur un fichier pour une application style 'traitement de texte'?". Je suppose qu'il existe de bien meilleure techniques que celles que j'ai citées...


Merci d'avance,


Benoit

3 réponses

Messages postés
750
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
23 décembre 2008
20
Slut
ben d'après ce que j'ai compris, java.nio serait nettement plus rapide en terme d'accés disque mais on ne peut travailler que sur le flux et le buffer tandis que java.io permet de travailler sur les flux mais aussi sur les fichiers, les répertoires proprement dit.

Voilà

[Tout le monde a des idées : la preuve, c'est qu'il y en a de mauvaises]
Messages postés
3
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
25 janvier 2005

Merci! Cela dit, qu'entends-tu exactement de flux et buffer?
Messages postés
3
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
25 janvier 2005

Je reformule mon dernier post...

Je sais très bien ce qu'est un buffer et un flux, mais par contre, je me demande : "Qu'est-ce qui fait la spécificité de java.nio? Sun designe t'il ce package comme successeur de java.io?"