FileNotFoundException dans src/main/resources
j'ai placé un fichier dans mon projet maven sous src/main/resources
le nom des fichiers est tout simplement temp.txt.
Lorsque j'essaie d'ouvrir le fichier:
BufferedReader br = new BufferedReader(new FileReader(new File("./temp.txt")));
J'obtiens une erreur:
Exception in thread "main" java.io.FileNotFoundException: \temp.txt
tous les fichiers sous le répertoire src/main/resources sont placés dans le dossier racine de
le classpath sous maven.
Alors pourquoi je ne peux pas le programme de trouver le fichier ici?
vous avez besoin de la
cela ne change rien. Le". " dit simplement le répertoire courant. Sans '.' est la même, comme avec le".".
essayez de le retirer de toute façon
'.'
?cela ne change rien. Le". " dit simplement le répertoire courant. Sans '.' est la même, comme avec le".".
essayez de le retirer de toute façon
OriginalL'auteur Mulgard | 2014-05-08
Vous devez vous connecter pour publier un commentaire.
Si vous allez pour le package du fichier dans le chemin de classe, puis de le lire en tant que tel.. à partir de la classe de chemin.
Maven Structure
Après qu'il construit, le fichier est placé dans la racine du chemin d'accès de classe. Donc, utiliser
La
/
en face defile.txt
vous amènera à la racine, à partir du package de la classe est en.Mise à JOUR
Exemple de Test
src/main/resources/file.txt
?Voir mon mise à JOUR
Examen de votre construction et de vérifier que le fichier est copié correctement. N'est pas là une faute de frappe?
Avec le
/
=null
. Sans le/
=NullPointerException
?OriginalL'auteur Paul Samsotha
juste donner à ce que votre chemin:
OriginalL'auteur Akshay Indalkar
Eu ce problème lors de la configuration de tests d'intégration dans Jenkins.
Le problème a été causé par le travail à l'intérieur d'un dossier avec des espaces dans le nom. Alors au lieu d'avoir un espace de travail dossier nommé
foo bar
, Jenkins, crééfoo%20bar
et les tests ont tous échoué avecFileNotFoundException
.La solution est simplement de renommer votre dossier afin de ne pas comporter d'espaces.
OriginalL'auteur Adrian Chu
Maven met les fichiers sous
/src/main/resouces/
dans le package par défaut de votre classpath. Par conséquent, vous pouvez en charge par le chargeur de classe:Pour plus d'informations, voir Classe#getResoucesAsStream.
OriginalL'auteur gregor