Java IO

allreader Messages postés 3 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 25 janvier 2005 - 24 janv. 2005 à 20:53
allreader Messages postés 3 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 25 janvier 2005 - 25 janv. 2005 à 20:38
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

indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
25 janv. 2005 à 08:55
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]
0
allreader Messages postés 3 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 25 janvier 2005
25 janv. 2005 à 11:29
Merci! Cela dit, qu'entends-tu exactement de flux et buffer?
0
allreader Messages postés 3 Date d'inscription lundi 24 janvier 2005 Statut Membre Dernière intervention 25 janvier 2005
25 janv. 2005 à 20:38
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?"
0
Rejoignez-nous