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")); code> renvoie une erreur. P>
4 Réponses :
Assumer que le fichier texte est dans le même répertoire que le 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. P> P> .Class code>, plutôt que le fichier
.java code> que vous pouvez faire
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") code>
@Winter basé sur ma mémoire floconneuse, je pense. Merci.
InputStream is = MyClass.class.getResourceAsStream("Words.txt"); ...
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
Scanner scanner = new Scanner(getClass().getResourceAsInputStream("Words.txt")); String s = new String(); while(scanner.hasNextLine()){ s = s + scanner.nextLine(); }
Vous vouliez dire getclass (). Getresourceastream ("mots.txt") code>
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.)