Tengo una pregunta un poco tonta, pero no he sido capaz de encontrar una solución para esto:
Cuando intento leer un archivo me sale un "error de archivo no encontrado" es runtime. Se compila el archivo though.
Estoy en Linux, así que uso la declaración algo como:
Scanner s = new Scanner(new File("home/me/java/ex.txt"));
y me da un runtime rror:
/home/me/javaException in thread "main" java.io.FileNotFoundException: home/me/java/ex.txt (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:137)
at java.util.Scanner.<init>(Scanner.java:653)
at test.main(test.java:14)
He intentado cambiar todo lo posible a lo largo de los nombres de archivo, pero nada parece funcionar.
¿Alguna pista de por qué sucede esto? ¿Dónde busca java los archivos por defecto?
Parece que le falta una barra oblicua. Tal vez lo intente:
Scanner s = new Scanner(new File("/home/me/java/ex.txt"));
(en cuanto a donde busca los archivos por defecto, es desde donde se ejecuta la JVM para rutas relativas como la que tienes en tu pregunta)
Creo que Todd tiene razón, pero creo que hay otra cosa que deberías considerar. Usted puede obtener de forma fiable el directorio raíz de la JVM en tiempo de ejecución, y entonces usted puede crear objetos de archivos relativos a esa ubicación. No es mucho más problemático, y es algo que agradecerás si alguna vez te mudas a otro ordenador o sistema operativo.
File homedir = new File(System.getProperty("user.home"));
File fileToRead = new File(homedir, "java/ex.txt");