0

我有一个图像 url ( http://example.com/myimage.jpg ) 并希望将其转换为字节数组并将其保存在我的数据库中。

我做了以下,但收到此消息URI scheme is not "file"

URI uri = new URI(profileImgUrl);
File fnew = new File(uri);
BufferedImage originalImage=ImageIO.read(fnew);
ByteArrayOutputStream baos=new ByteArrayOutputStream();
ImageIO.write(originalImage, "jpg", baos );
byte[] imageInByte=baos.toByteArray();
4

1 回答 1

2

构造函数的Javadoc指定File(URI)uri 必须是“文件”URI。换句话说,它应该以“文件:”开头

uri一个绝对的、分层的 URI,其方案等于“文件”、非空路径组件以及未定义的权限、查询和片段组件

但是您可以通过使用 URL 而不是 File/URI 来实现您想要做的事情:

URL imageURL = new URL(profileImgUrl);
BufferedImage originalImage=ImageIO.read(imageURL);
ByteArrayOutputStream baos=new ByteArrayOutputStream();
ImageIO.write(originalImage, "jpg", baos );

//Persist - in this case to a file

FileOutputStream fos = new FileOutputStream("outputImageName.jpg");
baos.writeTo(fos);
fos.close();
于 2013-10-19T15:28:16.523 回答