2009-03-25 22 views
15

Estoy tratando de leer un archivo de texto para ingresar datos a mi programa Java. Sin embargo, eclipse continuamente me da un error de fuente no encontrada, sin importar dónde coloque el archivo.Leer del archivo en Eclipse

He creado una carpeta de fuentes adicionales en el directorio del proyecto, el archivo en cuestión está en el archivo y en el archivo bin para el proyecto y todavía no puede encontrarlo.

Incluso puse una copia en mi escritorio e intenté señalar Eclipse allí cuando me pidió buscar la ruta de búsqueda de origen.

No importa lo que haga, no puedo encontrar el archivo.

aquí es mi código en caso de que sea pertinente:

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


    Scanner scanner = new Scanner(file); 

Además, se dice que el directorio del usuario es el directorio del proyecto y hay una copia allí también.

No tengo ni idea de qué hacer.

Gracias, Alex

después de intentar la sugerencia de abajo y refrescante de nuevo, fui recibido por una gran cantidad de errores. código

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  

utilizado:

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


    Scanner scanner = new Scanner(file); 

Respuesta

18

¿Usted intentó refrescante (click derecho -> actualizar) la carpeta del proyecto después de copiar el archivo ¿ahí? Eso sincronizará su sistema de archivos con el sistema de archivos interno de Eclipse.

Cuando ejecuta proyectos de Eclipse, el CWD (directorio de trabajo actual) es el directorio raíz del proyecto. No es el directorio de bin. No es el directorio de src, sino el directorio raíz.

Además, si está en Linux, recuerde que sus sistemas de archivos generalmente distinguen entre mayúsculas y minúsculas.

+0

Creo que el problema fue que había actualizado el archivo src y archivos, pero no el archivo del proyecto, por lo que nunca lo encontró. gracias por la ayuda – Buzkie

+0

¿Resolvió su problema? –

+0

si funciona ahora – Buzkie

7

¿Ha intentado utilizar una ruta absoluta:

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

No hay nada de malo en su código, lo siguiente funciona bien cuando tengo el archivo.txt en el directorio 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); 
     } 
    } 
} 

No confíe en Eclipse donde dice que está el archivo. Vaya al sistema de archivos actual con Windows Explorer o equivalente y verifique.

Según su edición, creo que también necesitamos ver sus declaraciones de importación.

4

Está buscando/leyendo el archivo "fiel.txt" en el directorio de ejecución (donde la clase está almacenada, creo).

Si whish para leer el archivo en un directorio dado, tienes que dice así:

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

También podría dar el directorio con una ruta relativa, por ejemplo," ./images/photo.gif) para una subdirección por ejemplo.

Tenga en cuenta que también hay una propiedad para el separador (no modificable a "/" en mi exemple)

respecto Guillaume

0

sólo tiene que conseguir la absoluta-ruta del archivo, dado que el archivo que está buscando no existe en el espacio de trabajo de ejecución del eclipse puede usar los métodos getProperty() o getLocationURI() para obtener la ruta absoluta del archivo

3

Estoy usando eclipse y no me quedé atrapado poder leer archivos debido a una "excepción de archivo no encontrado". Lo que hice para resolver este problema fue mover el archivo a la raíz de mi proyecto. Espero que esto ayude.

0

A veces, incluso cuando el archivo está en el directorio correcto, todavía existe la excepción "archivo no encontrado". Una cosa que podrías hacer es soltar el archivo de texto dentro de Eclipse, donde están tus clases, en el lado izquierdo. Le preguntará si desea copiar, haga clic en Sí. A veces ayuda.

Cuestiones relacionadas