2009-03-25 10 views
15

J'essaie de lire à partir d'un fichier texte pour entrer des données dans mon programme Java. Cependant, eclipse me donne continuellement une erreur Source introuvable quel que soit l'endroit où j'ai mis le fichier.Lecture à partir du fichier en eclipse

J'ai créé un dossier sources supplémentaire dans le répertoire du projet, le fichier en question se trouve à la fois dans celui-ci et dans le fichier bin du projet et il ne peut toujours pas le trouver. J'ai même mis une copie de celui-ci sur mon bureau et essayé de pointer l'éclipse là quand il m'a demandé de rechercher le chemin de recherche de source.

Peu importe ce que je fais, il ne trouve pas le fichier.

voici mon code dans le cas où il est pertinent:

System.out.println(System.getProperty("user.dir")); 
    File file = new File("file.txt"); 


    Scanner scanner = new Scanner(file); 

en plus, il dit que le répertoire utilisateur est le répertoire du projet et il y a une copie aussi.

Je n'ai aucune idée quoi faire.

Merci, Alex

après avoir essayé la suggestion ci-dessous et rafraîchissante à nouveau, je fus 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); 

Répondre

18

Avez-vous essayé rafraîchissant (clic droit -> Actualiser) le dossier du projet après avoir copié le fichier là-bas? 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. En outre, si vous êtes sous Linux, n'oubliez pas que ses systèmes de fichiers sont généralement sensibles à la casse.

+0

Je pense que le problème était que j'avais rafraîchi le fichier src et les fichiers, mais pas le fichier de projet, donc il ne l'a jamais trouvé. merci pour l'aide – Buzkie

+0

Cela a-t-il résolu votre problème? –

+0

oui ça marche maintenant – Buzkie

7

Avez-vous essayé d'utiliser un chemin absolu:

File file = new File(System.getProperty("user.dir") + "/file.txt"); 
1

Il n'y a rien de mal avec votre code, ce qui suit fonctionne bien pour moi quand 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); 
     } 
    } 
} 

N'approuvez pas Eclipse avec l'emplacement du fichier. Sortez sur le système de fichiers réel avec Windows Explorer ou équivalent et vérifiez.

En fonction de votre modification, je pense que nous devons également voir vos instructions d'importation.

4

Vous recherchez/lisez le fichier "fiel.txt" dans le répertoire d'exécution (où les classes sont stockées, je pense).

Si vous whish pour lire le fichier dans un répertoire donné, il faut donc dit:

File file = new File(System.getProperty("user.dir")+"/"+"file.txt"); 

Vous pouvez aussi donner le répertoire avec 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 «/» dans mon exemple)

concernant Guillaume

0

vous avez juste besoin d'obtenir le chemin absolu du fichier, Puisque le fichier que vous recherchez n'existe pas dans l'espace de travail d'exécution de l'éclipse vous pouvez utiliser les méthodes - getProperty() ou getLocationURI() pour obtenir le chemin absolu du fichier

3

J'utilise eclipse et j'étais bloqué être capable de lire des fichiers à cause d'une "exception de fichier introuvable". Ce que j'ai fait pour résoudre ce problème, c'est que j'ai déplacé le fichier à la racine de mon projet. J'espère que cela t'aides.

0

Parfois, même lorsque le fichier se trouve dans le bon répertoire, il existe toujours l'exception «fichier introuvable». Une chose que vous pourriez faire est de déposer le fichier texte dans eclipse, où vos classes sont, sur le côté gauche. Il va vous demander si vous voulez copier, cliquez sur oui. Parfois ça aide.

Questions connexes