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();				}			}		}	}}
上一篇:Java 对象流
下一篇:Java字节数组输入流ByteArrayInputStream

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月02日 08时23分37秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章