import java.io.*;/*** 将图片转为数组,输出成文件,再读取这个文件,获得这个数组,还原成图片

*@authorAdministrator

*

**/

public classText3 {public static voidmain(String[] args) {//获取图片aa.jpg,将图片信息保存到数组b中

byte []b=Text3.imgArry("aa.jpg");//通过数组b写到文件bb.txt中去

Text3.writeByteimg(b, "bb.txt");byte []c=Text3.imgin("bb.txt");

Text3.writeimg(c,"cc.jpg");

}/*** 用字节流获取图片,把字节数组用ByteArrayOutputStream 写到 bao里面去,,可以返回一个字节数组

*@parampath

*@return

*/

public static byte[] imgArry(String path){

InputStream inImg=null;

ByteArrayOutputStream bao=newByteArrayOutputStream();try{

inImg=newFileInputStream(path);byte [] b=new byte[1024];int len=-1;//将图片的所有字节通过数组b读取出来在写到bao里面去

while((len=inImg.read(b))!=-1) {

bao.write(b,0, len);

}//返回bao字节数组

returnbao.toByteArray();

}catch(FileNotFoundException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}finally{try{

bao.close();

inImg.close();

}catch(IOException e) {

e.printStackTrace();

}

}return null;

}/*** 用二进制写出图片,保存到文件去

*@paramimgs

*@parampath*/

public static void writeByteimg(byte[]imgs,String path) {

DataOutputStream outimg=null;try{

outimg=new DataOutputStream(newFileOutputStream(path));

outimg.write(imgs);

outimg.flush();

}catch(FileNotFoundException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}finally{try{

outimg.close();

}catch(IOException e) {

e.printStackTrace();

}

}

}/*** 读取二进制保存的图片,放到一个字节数组中*/

public static byte[] imgin(String path) {

DataInputStream imgin=null;try{

imgin=new DataInputStream(newFileInputStream(path));//创建一个字节数组,数组长度等于图片返回的实际字节数

byte[] b=new byte[imgin.available()];//读取图片信息放入b中,返回b

imgin.read(b);returnb;

}catch(FileNotFoundException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}finally{try{

imgin.close();

}catch(IOException e) {

e.printStackTrace();

}

}return null;

}/*** 将图片输出*/

public static void writeimg(byte[]img,String path) {

OutputStream ow=null;try{

ow=newFileOutputStream(path);

ow.write(img);

ow.flush();

}catch(FileNotFoundException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}finally{try{

ow.close();

}catch(IOException e) {

e.printStackTrace();

}

}

}

}

java二进制保存图片_JAVA高级特性——二进制存储图片相关推荐

  1. 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)读书笔记

    前言 我在读 深入理解java虚拟机 这本书,把整体其中的关键点标记了,希望自己对它有个不一样的理解,也希望大家能看看这本写的很好的书 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) pd ...

  2. 新书推荐 | Java核心技术 卷II 高级特性(原书第11版)

    新书推荐 <Java核心技术 卷II 高级特性(原书第11版)> 长按二维码 了解及购买 全新第11版!针对Java SE9.10.11全面更新!Java领域极具影响力和价值的著作之一,与 ...

  3. 最新:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)周志明

    本书一共分为五个部分:走近Java.自动内存管理.虚拟机执行子系统.程序编译与代码优化. 高效并发.各个部分之间基本上是互相独立的,没有必然的前后依赖关系,读者可以从任何一个感兴 趣的专题开始阅读,但 ...

  4. 读书笔记之《深入理解Java虚拟机:JVM高级特性与最佳实践》

    本篇带来的是周志明老师编写的<深入理解Java虚拟机:JVM高级特性与最佳实践>,十分硬核! 全书共分为 5 部分,围绕内存管理.执行子系统.程序编译与优化.高效并发等核心主题对JVM进行 ...

  5. Java核心技术卷2 高级特性 学习笔记(5)

    参考:Java核心技术卷2 高级特性  第九章 Java技术提供了三种确保安全的机制: 语言设计特性(对数组的边界进行检查,无不受检查的类型转换,无指针算法等). 访问控制机制,用于控制代码能够执行的 ...

  6. Java高级特性编程及事件_java高级特性是什么

    详细内容 java高级特性主要有集合框架及泛型,实用类,输入和输出处理,注解与多线程,网络编程与XML技术. 集合框架 是一套性能优良.使用方便的接口和类(位于java.util包中)解决数组在存储上 ...

  7. java优先队列_Java高级特性增强-多线程

    请戳GitHub原文: https://github.com/wangzhiwubigdata/God-Of-BigData 大数据成神之路系列: 请戳GitHub原文: https://github ...

  8. 《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一导读

    前 言 致读者 本书是按照Java SE 8完全更新后的<Java核心技术 卷Ⅱ 高级特性(原书第10版)>.卷Ⅰ主要介绍了Java语言的一些关键特性:而本卷主要介绍编程人员进行专业软件开 ...

  9. java 反射 new class_Java高级特性-反射:不写死在代码,还怎么 new 对象?

    反射是 Java 的一个高级特性,大量用在各种开源框架上. 在开源框架中,往往以同一套算法,来应对不同的数据结构.比如,Spring 的依赖注入,我们不用自己 new 对象了,这工作交给 Spring ...

最新文章

  1. STM32F103C8/BT6最小系统原理图、PCB
  2. 算法提高课-搜索-DFS之搜索顺序-AcWing 1117. 单词接龙:dfs
  3. 20201202 《计算感知》武老师 第2节课 笔记
  4. Code Review 是苦涩但有意思的修行
  5. 8大排序算法图文讲解
  6. 常用公有云接入——AZURE
  7. php globals_PHP $ GLOBALS(超级全局变量),带有示例
  8. java开发和structs的关系_java---springMVC与strutsMVC的区别
  9. 从Spark-Shell到SparkContext的函数调用路径过程分析(源码)
  10. paip.python NameError name 'xxx' is not defined\
  11. 大数据工程师简历_成为大数据工程师所需的技能
  12. 如何用计算机函数计算房租,Excel商铺租金模板,租金每两年递增5%,具备收租期、租赁起止期、单价函数自动计算功能...
  13. Windows DFS
  14. 工业检测产品中,用到的PPM, DPPM和DPMO的定义
  15. python搞笑梗_豆瓣9.1、刷爆朋友圈,知道这3个梗就够了
  16. 2022年终总结-两年Androider的成长之路
  17. 如何下载并安装turbo pascal 7.0?
  18. 明哥学习Spring(2)
  19. STC89C51单片机相比于其他单片机具有那些优点?
  20. 玩《节奏大师》——换你所爱的歌曲

热门文章

  1. RNN中的Teacher Forcing
  2. Word Maze(单词迷宫)
  3. 华为p4不是鸿蒙吗怎么又改为安卓_鸿蒙系统是不是就是改版的安卓系统?
  4. [2021首届“陇剑杯”网络安全大赛 决赛]内存取证writeup
  5. 【大数据 BI】传统BI流程
  6. BZOJ2818 Gcd
  7. 好好讲一讲:到底什么是Java架构师(含福利放送)
  8. 超级电容模组电压不均衡特性分析
  9. 动态二维码刷卡触摸按键门禁一体机性能与选型攻略
  10. reboot复位ipcam,为何不可靠?