InputStream怎么读取图片
时间: 2023-10-25 16:25:09 浏览: 52
可以使用以下步骤来读取图片:
1. 创建一个InputStream对象,指向图片的路径或者直接读取网络中的图片。
2. 使用BufferedInputStream提高读取性能。
3. 创建一个ByteArrayOutputStream对象。
4. 创建一个byte数组作为缓冲区。
5. 使用while循环,每次读取一定数量的字节到缓冲区中,直到全部读取完毕。
6. 将缓冲区中的字节写入ByteArrayOutputStream对象中。
7. 关闭InputStream和ByteArrayOutputStream对象。
8. 将ByteArrayOutputStream对象中的字节转换成byte数组。
9. 使用ImageIO类的read()方法将byte数组转换成Image对象。
示例代码:
```java
import java.awt.Image;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import javax.imageio.ImageIO;
public class ReadImage {
public static void main(String[] args) throws Exception {
InputStream input = ReadImage.class.getResourceAsStream("/image.jpg");
BufferedInputStream bis = new BufferedInputStream(input);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = bis.read(buffer)) > -1) {
baos.write(buffer, 0, len);
}
baos.flush();
byte[] imageBytes = baos.toByteArray();
Image image = ImageIO.read(new ByteArrayInputStream(imageBytes));
bis.close();
baos.close();
input.close();
}
}
```