He là. Ví dụ, đoạn mã này:
public static void main(String[] args) throws IOException {
BufferedImage image = new BufferedImage(32, 32, BufferedImage.TYPE_INT_ARGB);
File out = new File("\\\\ABC\\abc.png");
ImageIO.write(image, "png", out);
}
cho
java.io.FileNotFoundException: \\ABC\abc.png (The network path was not found)
at java.io.RandomAccessFile.open(Native Method)
at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233)
at javax.imageio.stream.FileImageOutputStream.<init>(FileImageOutputStream.java:69)
at com.sun.imageio.spi.FileImageOutputStreamSpi.createOutputStreamInstance(FileImageOutputStreamSpi.java:55)
at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:419)
at javax.imageio.ImageIO.write(ImageIO.java:1530)
at javaapplication145.JavaApplication145.main(JavaApplication145.java:24)
Exception in thread "main" java.lang.NullPointerException
at javax.imageio.ImageIO.write(ImageIO.java:1538)
at javaapplication145.JavaApplication145.main(JavaApplication145.java:24)
Lý do là FileImageOutputStreamSpi.createOutputStreamInstance
nuốt FileNotFoundException và sau đó NPE đến khi ImageIO.write
cố gắng để đóng một dòng mà không mở.
Tại sao ngoại lệ bị ngăn chặn quá tàn nhẫn, tôi không biết. Đoạn mã là
try {
return new FileImageOutputStream((File)output);
} catch (Exception e) {
e.printStackTrace();
return null;
}
Giải pháp duy nhất là để xác minh con đường trước cố gắng sử dụng ImageIO.
Nguồn
2012-06-22 10:29:28
Chia sẻ mã nơi ngoại lệ này xảy ra, vui lòng – maksimov
Không có phương pháp ImageIO.write() tham gia đường dẫn chuỗi làm đối số. Cho chúng tôi thấy mã của bạn và dấu vết ngăn xếp của ngoại lệ. –
Ngoài ra, bạn thậm chí có thể hiển thị 'stacktrace' của mình. –