
Java对接流
在字节数组输入输出流的应用时,最后可以不用释放。 以下代码:
发布日期:2021-05-07 03:00:32
浏览次数:38
分类:精选文章
本文共 2054 字,大约阅读时间需要 6 分钟。
在平常我们复制文件,知道文件所在的位置,我们可以通过文件输入输出流进行转换复制,但是,假如在网络或者服务器传输时,把文件转换成字节,方便传输,即时转换成字节数组,通过程序进行端到端的中转。示意图如下:

import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;/** * 利用bytearray(i&o)nputstream复制 * @author 佳哥 * */public class copy { public static void main(String[] args) { byte[] date = FileToByteArray("img01.png");//源文件(相对路径) ByteArrayToFile(date,"copyimg01.png");//复制的图片 }//文件到字节数组 public static byte[] FileToByteArray(String filePath) { //创建源 File file = new File(filePath);//文件输入流 //选择流 InputStream is = null; ByteArrayOutputStream baos = null; try { is = new FileInputStream(file); baos = new ByteArrayOutputStream(); //操作 /*缓冲数组*/ byte[] flush = new byte[1024]; int len = -1; while((len = is.read(flush))!=-1) { baos.write(flush, 0, len); } baos.flush(); return baos.toByteArray(); }catch(FileNotFoundException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); }finally { if(is != null) { try { is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return null; } //把字节数组利用字节数组输入流到程序中,再用文件输出流输出到文件中 public static void ByteArrayToFile(byte[] date,String filecopy) { //字节数组输入流的源 byte[] byteDate = date; InputStream is = null; OutputStream os = null; try { is = new ByteArrayInputStream(byteDate); os = new FileOutputStream(filecopy); byte[] flush = new byte[1024]; int len = -1; while((len = is.read(flush))!=-1) { os.write(flush, 0, len); } os.flush(); }catch(IOException e) { e.printStackTrace(); }finally { if(os != null) { try { os.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }}
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月02日 08时23分37秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
《算法导论》第二章笔记
2019-03-06
HTML节点操作
2019-03-06
HTML5新特性
2019-03-06
cmp命令
2019-03-06
一次编辑
2019-03-06
JavaScript中的链式调用
2019-03-06
day-04-列表
2019-03-06
Linux 磁盘管理(df fu fdisk mkfs mount)
2019-03-06
第一类曲面积分
2019-03-06
MySQL锁机制
2019-03-06
Go 数组&切片
2019-03-06
老Python总结的字典相关知识
2019-03-06
vue 不常见操作
2019-03-06
jQuery的事件绑定与触发 - 学习笔记
2019-03-06
Python处理接口测试的签名
2019-03-06
测试流程规范--测试报告模板
2019-03-06
Linux上TCP的几个内核参数调优
2019-03-06
记一次讲故事机器人的开发-我有故事,让机器人来读
2019-03-06
高德算法工程一体化实践和思考
2019-03-06
判断一个数是否是2的幂
2019-03-06