Soy un idiota. ¿Por qué no puedo leer los archivos?

import java.awt.Image;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;


public class mainClass {

    public static void main(String[] args) {
        try {
            Image picture = ImageIO.read(new File("picture.png"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

Y el archivo está en la carpeta src seguro.

Pero lanza la excepción cada vez que aun cuando el archivo está ahí, sin faltas de ortografía.

edit: La primera frase era cierto, yo no he puesto la imagen en la raíz.

  • ¿Cuál es el síntoma aquí?
  • ¿Usted está consiguiendo un error? Lo que sucede?
  • sí, se produce la excepción cada vez. Ese es todo el código que tengo en el programa también.
  • Lo que la excepción hace a tiro? También la carpeta src no significa que va a ser encontrado.. debe estar en la carpeta de tiempo de ejecución. ¿Cómo se ejecuta?
  • Estoy usando eclipse y me ejecutarlo desde allí. Todo lo que hice fue pegar el archivo de imagen en la carpeta src.
  • El archivo de imagen debe ir a la raíz de tu proyecto de eclipse, no en src/ carpeta. También por favor enviar el stacktrace
  • Sí funcionó. Mi cerebro me dijo que yo probé hace 3 horas. Yo obviamente no. Gracias por el defrag.

InformationsquelleAutor wokparty | 2012-03-15

3 Comentarios

  1. 2

    Sido así, sabe que la sensación. De todos modos, trate de imprimir directorio de trabajo actual y que le dirá exactamente donde la aplicación es realmente lectura.

    try
    {
        Image picture = ImageIO.read(new File("picture.png"));
    }
    catch (IOException e)
    {
        String workingDir = System.getProperty("user.dir");
        System.out.println("Current working directory : " + workingDir);
        e.printStackTrace();
    }
    • Referencia pertinente: java.io.archivo docs Además, el uso de absolute path (como /home/Stuff/Pictures/picture.png) vale la pena un tiro. En el otro lado , OS dependientes. Nota: File objeto tiene una getParent() método, que, en este caso, podría hacer lo mismo.
    • Bueno, eso es una muy comentario constructivo y positivo. Últimamente, ni idea de por qué deducido reputación de usuario sin dar una buena razón. Perdí mi fe hacia de MODO de contribuir de forma activa en el futuro.
  2. 0

    Intenta especificar la ruta de la imagen. Por ejemplo:

    Image picture = ImageIO.read(new File("C:/Desktop/picture.png"));

    O si la imagen está en su área de trabajo, por ejemplo:

    Image picture = ImageIO.read(new File("C:/workspace/Project/src/picture.png"));

    Usted puede ver la ubicación de la imagen (la ruta de la imagen) al hacer clic con el botón derecho del ratón en la imagen, a continuación, en Propiedades.

    Puede utilizar uno slah ( /) o dos backslashs ( \\ ) para separar los directorios de la ruta de acceso.

  3. 0

    Existe una dicotomía en java.

    1. Si su archivo es parte de los entregables del proyecto, un archivo que puede ser embalado en el archivo jar de aplicación, entonces es un de recursos.

      Image picture = ImageIO.read(SomeClassOfYours.class.getResource("/picture.png"));

    La ruta es relativa a la clase, y puede ser una ruta absoluta. Todos en la clase de java ruta de acceso de la aplicación.

    1. Si el archivo es un archivo del sistema de archivos, un File, entonces el mejor camino es una ruta de acceso absoluta. Una ruta de acceso relativa depende en que directorio de trabajo que se ejecuta la aplicación, y que puede diferir.

      Image picture = ImageIO.read(new File("C:/.../src/picture.png"));

    La pregunta parece indicar que la imagen es de solo lectura, por parte de la aplicación, en cuyo caso es un archivo de recursos. La ruta de acceso debe ser sensible a mayúsculas y minúsculas, y el separador de ruta debe ser una barra diagonal /.

Dejar respuesta

Please enter your comment!
Please enter your name here