Java中如何把图片转换成二进制流

2024-01-15 16:09:40 浏览

使用Java的IO流对图片进行二进制读取操作即可

中如何把图片转换成二进制流

示例为:读取图片为二进制流,并写入到其他图片中

static void testCopyImage(){ File source=new File("E:\\share\\Wallpaper\\Bliss.jpg"); File desk=new File("d:\\images"); if(!desk.exists()){ desk.mkdir(); } try { FileInputStream inputStream=new FileInputStream(source); FileOutputStream outputStream=new FileOutputStream(new File("d:/images/Bliss.jpg")); int ch=inputStream.read(); while(ch!=-1){ outputStream.write(ch); ch=inputStream.read(); } inputStream.close(); outputStream.close(); System.out.println("图片复制成功!"); } catch (FileNotFoundException e) { System.out.println("文件不存在:"+e.getMessage()); } catch (IOException e) { System.out.println("文件读取错误:"+e.getMessage()); } }

- -是编码问题,因为Java默认写入编码是UTF-8,而WINDOWS在处理UTF-8时会在前面加上几个字符,而由缓冲流写入的UTF-8编码格式是不带那几个字符的,所以会出现乱码,最好的解决方式是使用notepad++替代notepad- -。

1. InputStream 和OutputStream,两个是为字节流设计的,主要用来处理字节或二进制对象,

2. Reader和 Writer.两个是为字符流(一个字符占两个字节)设计的,主要用来处理字符或字符串.

字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点

1,字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。