Đoạn mã sau dường như không hoạt động, mặc dù tệp có vẻ được tìm thấy tốt.ImageIO.read trả về NULL, không có lỗi
images = new BufferedImage[32];
FileInputStream fis = null;
for (int i = 0; i < 32; i++) {
File file = new File("tiles\\"+i+".bmp");
if (!file.exists()){
System.out.println("File "+i+" failed");
}
try {
fis = new FileInputStream(file);
} catch (FileNotFoundException e) {
System.err.println(e + "" + i);
}
try {
images[i] = ImageIO.read(fis);
} catch (IOException e) {
System.err.println(e + "" + i);
}
if (images[i] == null) {
System.out.println("Image "+i+" failed");
}
}
Cảm ơn bạn đã giúp đỡ.
Chỉnh sửa: Kết quả là tôi đang cố gắng để Graphics.drawImage (hình ảnh [0]) ;, và nó cho tôi một ngoại lệ con trỏ null. Mã này ở đây hoàn thành tốt.
Chỉnh sửa: Đã thay đổi di chuyển if (! File.exists()) như được đề xuất và gói tệp vào luồng đầu vào.
[RTFM] (http://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageIO.html#read%28java.io.File%29) – mre
Bạn có thể mô tả kết quả không? Một dự đoán hoang dã: đường dẫn trong không chính xác ... –
Tại sao don'y bạn đặt thử nghiệm của bạn nếu (! File.exists()) System.out.println ("File" + i + "failed"); trước khi đọc? –