0

关于的一个简单问题class.getResource("path")。路径是否根据班级位置?有人告诉我看看 ClassLoader,但我什么也没得到。如何获取根目录上的文件(如果可以在任何地方搜索,除了键入绝对路径)。感谢任何回复。

try
{
    image = ImageIO.read(Images.class.getResourceAsStream(imageName));
    BufferedImage img = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB);
    Graphics g = img.getGraphics();
    g.drawImage(image, 0, 0, null);
    g.dispose();
    image = img;
}
catch (IOException e)
{
    e.printStackTrace();
    return null;
}
4

2 回答 2

0

在 java 应用程序中加载资源文件的方法有很多。sun 推荐的是使用Class.getResource("resource_name"),否则Class.getResourceAsStream("resource_name")您将分别获得 URL 和 InputStream。如果没有指定 resource_name /,它将在 Class 包之前添加。所以资源文件必须与类在同一个地方[文件夹结构]。我喜欢做的是调用资源文件getResource()并将/其放在包的根目录下。

this.getClass().getResource("/resource/buttons1.png")

或者

this.getClass().getResourceAsStream("/resource/TX_Jello2.ttf")
于 2012-09-26T08:14:11.770 回答
0

在你的情况下:

Images.class.getResourceAsStream("/" + fileName)

将返回一个由相对于类根文件夹指定的InputStream一个。因此,如果您的类在一个包中(文件夹将是 com/company),则该文件(如果这只是一个文件名)将位于与“com”文件夹相同的文件夹中。FileimageNamecom.companyimageName

于 2012-09-26T08:15:11.110 回答