J'essaie de lire un fichier texte pour saisir des données dans mon programme Java. Cependant, Eclipse me donne continuellement une erreur Source non trouvée, peu importe où je mets le fichier.
J'ai créé un dossier de sources supplémentaire dans le répertoire du projet. Le fichier en question se trouve à la fois dans le fichier et le fichier bin du projet. Il ne le trouve toujours pas.
J'en ai même mis une copie sur mon bureau et j'ai essayé de pointer Eclipse à cet endroit lorsqu'il m'a demandé de rechercher le chemin de recherche source.
Peu importe ce que je fais, le fichier ne peut pas être trouvé.
voici mon code au cas où il serait pertinent:
System.out.println(System.getProperty("user.dir"));
File file = new File("file.txt");
Scanner scanner = new Scanner(file);
en outre, il est indiqué que le répertoire de l'utilisateur est le répertoire du projet et qu'il y en a une copie également.
Je n'ai aucune idée de quoi faire.
Merci, Alex
après avoir tenté la suggestion ci-dessous et avoir rafraîchi à nouveau, j'ai été accueilli par une foule d'erreurs.
FileNotFoundException(Throwable).<init>(String) line: 195
FileNotFoundException(Exception).<init>(String) line: not available
FileNotFoundException(IOException).<init>(String) line: not available
FileNotFoundException.<init>(String) line: not available
URLClassPath$JarLoader.getJarFile(URL) line: not available
URLClassPath$JarLoader.access$600(URLClassPath$JarLoader, URL) line: not available
URLClassPath$JarLoader$1.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method]
URLClassPath$JarLoader.ensureOpen() line: not available
URLClassPath$JarLoader.<init>(URL, URLStreamHandler, HashMap) line: not available
URLClassPath$3.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method]
URLClassPath.getLoader(URL) line: not available
URLClassPath.getLoader(int) line: not available
URLClassPath.access$000(URLClassPath, int) line: not available
URLClassPath$2.next() line: not available
URLClassPath$2.hasMoreElements() line: not available
ClassLoader$2.hasMoreElements() line: not available
CompoundEnumeration<E>.next() line: not available
CompoundEnumeration<E>.hasMoreElements() line: not available
ServiceLoader$LazyIterator.hasNext() line: not available
ServiceLoader$1.hasNext() line: not available
LocaleServiceProviderPool$1.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method]
LocaleServiceProviderPool.<init>(Class<LocaleServiceProvider>) line: not available
LocaleServiceProviderPool.getPool(Class<LocaleServiceProvider>) line: not available
NumberFormat.getInstance(Locale, int) line: not available
NumberFormat.getNumberInstance(Locale) line: not available
Scanner.useLocale(Locale) line: not available
Scanner.<init>(Readable, Pattern) line: not available
Scanner.<init>(ReadableByteChannel) line: not available
Scanner.<init>(File) line: not available
code utilisé:
System.out.println(System.getProperty("user.dir"));
File file = new File(System.getProperty("user.dir") + "/file.txt");
Scanner scanner = new Scanner(file);
Avez-vous essayé d'actualiser (clic droit -> actualiser) le dossier du projet après y avoir copié le fichier? Cela synchronisera votre système de fichiers avec le système de fichiers interne d'Eclipse.
Lorsque vous exécutez des projets Eclipse, le CWD (répertoire de travail actuel) est le répertoire racine du projet. Pas le répertoire de bin. Pas le répertoire de src, mais le répertoire racine.
De plus, si vous êtes sous Linux, n'oubliez pas que ses systèmes de fichiers sont généralement sensibles à la casse.
Avez-vous essayé d'utiliser un chemin absolu:
File file = new File(System.getProperty("user.dir") + "/file.txt");
Vous recherchez/lisez le fichier "fiel.txt" dans le répertoire d'exécution (où la classe est stockée, je pense).
Si vous souhaitez lire le fichier dans un répertoire donné, vous devez le préciser:
File file = new File(System.getProperty("user.dir")+"/"+"file.txt");
Vous pouvez également donner au répertoire un chemin relatif, par exemple "./images/photo.gif) pour un sous-répertoire par exemple.
Notez qu'il existe également une propriété pour le séparateur (codé en dur en "/" dans mon exemple)
salutations Guillaume
J'utilise Eclipse et j'étais bloqué sur l'impossibilité de lire les fichiers à cause d'une "exception de fichier introuvable". Pour résoudre ce problème, j'ai déplacé le fichier à la racine de mon projet. J'espère que cela t'aides.
Il n'y a rien de mal avec votre code, ce qui suit fonctionne bien pour moi lorsque j'ai le fichier file.txt dans le répertoire user.dir.
import Java.io.File;
import Java.util.Scanner;
public class testme {
public static void main(String[] args) {
System.out.println(System.getProperty("user.dir"));
File file = new File("file.txt");
try {
Scanner scanner = new Scanner(file);
} catch (Exception e) {
System.out.println(e);
}
}
}
Ne faites pas confiance à Eclipse pour indiquer où se trouve le fichier. Accédez au système de fichiers actuel avec Windows Explorer ou son équivalent et vérifiez.
Sur la base de votre modification, je pense que nous devons également consulter vos déclarations d'importation.
Parfois, même lorsque le fichier se trouve dans le bon répertoire, il existe toujours l’exception "fichier non trouvé". Une chose à faire est de déposer le fichier texte dans Eclipse, où se trouvent vos classes, du côté gauche. Il va vous demander si vous voulez copier, cliquez sur oui. Parfois ça aide.
vous devez simplement obtenir le chemin absolu du fichier, car le fichier que vous recherchez n'existe pas dans l'espace de travail d'exécution d'Eclipsevous pouvez utiliser les méthodes - getProperty () ou getLocationURI () pour obtenir le chemin absolu du fichier. fichier