12
votes

Java - Obtenir un fichier du même paquet

Si je veux lire des "mots.txt" qui se trouve dans le même paquet que la classe, comment ferais-je cela? Faire simplement scanner = nouveau scanner (nouveau fichier ("mots.txt")); renvoie une erreur.


1 commentaires

Essayez de mettre le fichier .txt à la racine de votre projet. Bien que les fichiers texte puissent figurer dans le même dossier que les fichiers d'un package particulier, cela ne les rend pas vraiment faisant partie du colis. Au lieu de cela, vous devez le charger à partir du système de fichiers (ou à la varitation du bocal ou de la guerre.)


4 Réponses :


2
votes

Assumer que le fichier texte est dans le même répertoire que le .Class , plutôt que le fichier .java que vous pouvez faire xxx

Ce que vous avez rechercherez le fichier dans le répertoire de travail actuel. Lorsque vous construisez votre programme, il s'agit généralement du répertoire racine de votre programme. Lorsque vous l'exécutez comme un programme autonome, c'est généralement le répertoire du programme.


2 commentaires

Je ne sais pas si chaque réponse est basée sur une autre ou le nom de la méthode vient de changer, mais c'est getclass (). Getresourceastream ("mots.txt")


@Winter basé sur ma mémoire floconneuse, je pense. Merci.



17
votes
InputStream is = MyClass.class.getResourceAsStream("Words.txt");
...

0 commentaires

2
votes
Scanner = new Scanner(new File("/path/to/Words.txt")); 
The argument in the File() constructor, Is the path relative to the system your VM is running on, it s doesn't depend on the classe's package. If you your words.txt is a resource packaged with your war you can see here : Load resource from anywhere in classpath

0 commentaires

0
votes
Scanner scanner = new Scanner(getClass().getResourceAsInputStream("Words.txt"));

String s = new String();

while(scanner.hasNextLine()){


        s = s + scanner.nextLine();


 }

1 commentaires

Vous vouliez dire getclass (). Getresourceastream ("mots.txt")