java.net.MalformedURLException:未知协议:f
我试图得到一个图像直方图使用此代码。通常,当输入url给出的图像时,它工作正常。但是当我从本地目录给出图像时java.net.MalformedURLException:未知协议:f,java,histogram,Java,Histogram,我试图得到一个图像直方图使用此代码。通常,当输入url给出的图像时,它工作正常。但是当我从本地目录给出图像时 private BufferedImage getImage() { try { return ImageIO.read(new URL( "F:/test.jpg")); } catch (IOException e) { e.printStackTrace(System.err); } retur
private BufferedImage getImage() {
try {
return ImageIO.read(new URL(
"F:/test.jpg"));
} catch (IOException e) {
e.printStackTrace(System.err);
}
return null;
}
这是个例外
java.net.MalformedURLException: unknown protocol: f
如何解决此异常并获取图像的直方图。jpg不是有效的URL。对于文件,URL是
file://F:/test.jpg
其中
文件
是协议协议无效
如果需要从文件系统加载文件,则需要使用
文件URI的形式为file://host/path
其中,host
是可访问路径的系统的完全限定域名,路径是一个分层目录路径,形式为目录/目录/../name
。如果省略了host
,则将其视为“localhost
”,从中解释URL的机器
因此,url应该是:
file://F:/test.jpg
虽然其他答案在技术上可以解决您的问题,但您不应该为此使用
URL
。read
函数还有其他签名,您可以使用以下任一签名:
return ImageIO.read(new File("F:/test.jpg"));
// or
return ImageIO.read(new FileInputStream("F:/test.jpg"));