2010-09-02 16 views
1

J'essaie de charger un fichier texte à partir du paquetage src. Je ne veux pas le charger en tant que flux d'entrée. Je voudrais le charger en tant que FileReader.Charger le fichier à partir du paquet source

En regardant comment les icônes, je charge les NetBeans essayé d'utiliser le code:

getClass().getResourcesAsStream("/getresources/test.txt"); 

Cependant, je ne peux pas trouver un moyen de convertir un flux entrant en FileReader. Y at-il de toute façon faire cela pour que je puisse utiliser un FileReader. Je sais que je pourrais briser le flux d'entrée en ligne moi-même, mais cela semble beaucoup de travail.

Merci!

nt

Répondre

3

Vous voudrez probablement utiliser un BufferedReader à la place. Il a les mêmes avantages qu'un Filereader, peut lire ligne par ligne etc, et accepte un InputStreamReader qui accepte un InputStream. Ces classes d'E/S sont en fait une implémentation du motif de décorateur bien connu. Si vous lisez sur ce modèle, vous comprendrez probablement plus toutes ces classes d'E/S.

Un FileReader attend un fichier.

+0

thx. cela a fonctionné magnifiquement! – nite

2

Notez qu'une ressource classpath pourrait ne pas être accessible à partir du système de fichiers. En outre, je suppose que toute API décente accepterait un Reader plutôt qu'un FileReader. Vous pouvez faire:

Reader reader = new InputStreamReader(inputStream); 
1

Puisque vous avez une ressource en flux continu (qui pourrait provenir d'une URL) et non un fichier, je suggère d'utiliser un InputStreamReader.