Java read()无限循环
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 {
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我很清楚这不是一个理想的加载方式,我创建这个类只是为了让它更简单,并去掉所有不可用的东西。