2010-11-08 4 views
0

Fondamentalement, je cherche un moyen simple de lister et d'accéder à un ensemble de chaînes sous forme de flux d'une manière abstraite. Le seul problème est que l'API d'accès aux fichiers de Java peut être utilisée pour la liste et la lecture des fichiers, et toute sorte de stockage de données non-système de fichiers utilise une API différente. Ma question est de savoir s'il existe une API commune que je pourrais utiliser (que ce soit en Java ou en tant qu'API externe) afin que je puisse accéder à la fois de manière abstraite, mais aussi de manière assez efficace. Essentiellement, je veux un ensemble de fichiers texte diffusés paresseusement. Quelque chose comme Set peut être raisonnable, sauf sur un système de fichiers, vous devrez ouvrir les flux de texte même si vous ne voulez pas accéder à ce fichier.Abstraction de base de données/base de données simple en Java?

Une sorte de api comme

String[] TextStorage.list() 
InputStream TextStorage.open(String elementname); 

qui pourrait abstraitement être utilisé pour accéder soit des systèmes de fichiers ou bases de données, ou un autre mécanisme de stockage que j'invente dans l'avenir (peut-être aller chercher quelque chose à travers l'Internet).

Existe-t-il une bibliothèque qui le fait déjà? Puis-je le faire avec l'API Java déjà existante? Ai-je besoin d'écrire moi-même? Je serais surpris si personne n'a déjà rencontré ce problème, mais mes recherches google-fu et stackoverflow ne semblent rien trouver.

+0

Besoin de plus de clarté. Vous avez perdu la raison pour laquelle vous n'écririez pas une interface comme vous l'avez décrit et permettiez que l'implémentation soit connectable via une méthode 'getInstance()' statique (ou similaire)? – Xailor

+0

La seule raison pour laquelle je n'écrirais pas cette interface est de ne pas "réinventer la roue". Si rien d'autre n'existe, ce n'est vraiment pas un gros problème à écrire, je pensais juste que * si * quelque chose d'autre existe, pourquoi ne pas l'utiliser et aider à garder le monde un peu plus standardisé. –

Répondre

Questions connexes