texto - manejo de archivos en java netbeans
Java-FilenotfoundException para leer el archivo de texto (4)
La mejor forma de hacerlo es colocarlo en su classpath y luego getResource ()
package com.sandbox;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
public class Sandbox {
public static void main(String[] args) throws URISyntaxException, IOException {
new Sandbox().run();
}
private void run() throws URISyntaxException, IOException {
URL resource = Sandbox.class.getResource("/my.txt");
File file = new File(resource.toURI());
String s = FileUtils.readFileToString(file);
System.out.println(s);
}
}
Lo hago porque supongo que necesitas un File
. Pero si tiene una API que toma un InputStream
lugar, probablemente sea mejor usar getResourceAsStream
en getResourceAsStream
lugar.
Observe la ruta, /my.txt
. Eso significa, "obtener un archivo llamado my.txt que se encuentra en el directorio raíz del classpath". Estoy seguro de que puede obtener más información sobre getResource
y getResourceAsStream
para obtener más información acerca de cómo hacer esto. Pero la clave aquí es que el classpath para el archivo será el mismo para cualquier computadora que le proporcione al ejecutable (siempre y cuando no mueva el archivo en su classpath).
Por cierto, si obtiene una excepción de puntero nulo en la línea que hace un new File
, eso significa que no ha especificado la ruta de clase correcta para el archivo.
ejecutando esto ...
File file = new File("Highscores.scr");
sigo recibiendo este error, y realmente no sé cómo evitarlo. el archivo está actualmente en mis paquetes fuente con mis archivos .java. Puedo leer el archivo con bastante facilidad especificando la ruta, pero tengo la intención de ejecutar esto en varias computadoras, así que necesito que el archivo sea portátil con el programa. esta pregunta no trata de leer el archivo de texto, sino más bien de especificar su ubicación sin usar una ruta absoluta. He buscado la respuesta, pero las respuestas que recibo son solo "especificar el nombre" y "especificar la ruta absoluta". id publicar una imagen para que quede más claro, pero no tengo los 10 representantes para hacerlo: / ¿cómo hago esto?
aclamaciones.
Por lo que recuerdo, el directorio predeterminado será el mismo que el nivel de tu carpeta de proyecto. Pon el archivo un nivel más alto.
-Project/
----src/
----test/
-Highscores.scr
Puede intentar ejecutar el siguiente programa de ejemplo para verificar cuál es el directorio actual que su programa está recogiendo.
File f = new File(".");
System.out.println("Current Directory is: " + f.getAbsolutePath());
Si está construyendo su código en su eclipse, debe colocar su Highscores.scr
en su carpeta de proyecto. Pruébalo y comprueba.