Java read()无限循环

Java read()无限循环,java,loading,bufferedimage,javax.imageio,Java,Loading,Bufferedimage,Javax.imageio,read()似乎陷入了一个无限循环中 我的代码: import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class Texture { BufferedImage _img; public Texture(String path) { try {

read()似乎陷入了一个无限循环中

我的代码:

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class Texture {
    BufferedImage _img;

    public Texture(String path) {
        try {
            _img = ImageIO.read(new File(path));
        } catch (final IOException e) {
            e.printStackTrace();
        }
    }
}
其他类别:

private Texture _tex;
_tex = new Texture("/res/img.png");
我已经尝试加载这个URL和文件的图像,没有工作

我在mac上使用eclipse,如果这与任何事情有关,我使用LWJGL3


希望你能帮助我!:-)

不要使用文件,尝试使用如下输入流:

InputStream stream = Texture.class.getResourceAsStream(path);
_img = ImageIO.read(stream);

我实际上遇到了一个类似的问题,但它与BuffereImage的创建有关。

请尝试使用如下输入流,而不是使用文件:

InputStream stream = Texture.class.getResourceAsStream(path);
_img = ImageIO.read(stream);

我实际上遇到了一个类似的问题,但它与BuffereImage的创建有关。

是什么让你认为它陷入了无限循环?你试过调试它,看看它是否卡住了吗?当我调用ImageIO.read()时,代码停止并继续,直到我强制退出。这不是问题所在,但不要在构造函数中读取图像:直接传递缓冲图像。它使您的类更加灵活,例如,您可以通过编程方式创建新图像并使用纹理类中的图像。不要接受异常,您将得到一个零件初始化类(如果图像加载失败,图像可能为空)。您可以发布您尝试创建
纹理的
对象的完整上下文吗?你是得到了一个异常,还是它只是冻结了?@AndyTurner我很清楚这不是加载的理想方式,我创建这个类只是为了让它更简单,并去掉所有不可用的东西。是什么让你认为它陷入了一个无限循环?你试过调试它,看看它是否卡住了吗?当我调用ImageIO.read()时,代码停止并继续,直到我强制退出。这不是问题所在,但不要在构造函数中读取图像:直接传递缓冲图像。它使您的类更加灵活,例如,您可以通过编程方式创建新图像并使用纹理类中的图像。不要接受异常,您将得到一个零件初始化类(如果图像加载失败,图像可能为空)。您可以发布您尝试创建
纹理的
对象的完整上下文吗?你是得到了一个异常,还是它只是冻结了?@AndyTurner我很清楚这不是一个理想的加载方式,我创建这个类只是为了让它更简单,并去掉所有不可用的东西。