JAVA中IO流字节流复制图片性能优化版

JAVA中IO流字节流复制图片性能优化版

1、代码实现:
package ioStream_prctise;

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;

public class ioStream {

 public static void main(String args[]) {
	InputStream is=null;
	OutputStream os=null;
	try {
		//输入流将文件从D盘输入到内存
		is=new FileInputStream(new File("D:\\lanqiao.jpg"));
		//输出流将文件从内存输出到E盘
		os=new FileOutputStream(new File("D:\\lanqiao3.jpg"));
		/*
		 * 接下来需要一个字节一个字节的去读,Java中的处理机制会将文件的 的每一个字节转化成一个int型的数字。
		 */
		//建立缓冲数组,进行性能优化
		byte[] b=new byte[1024];
		while(true) {
		 int i=	is.read(b);//每次可以读取1024个字节,当然有可能小于1024,也有可能大于1024
         //当这个int型数字变为-1的时候,表明读取结束			 
			if(i==-1) {
				break;
			}
			//读完以后就开始往里面写了,将b这个字节数组写到内存里面,当b里面的字节数小于1024的时候,写到i个位置就可以了
			os.write(b,0,i);
		}
	} catch (FileNotFoundException e) {
		System.out.println("你输入的文件路径是错误的!");
		e.printStackTrace();
	} catch (IOException e) {
		System.out.println("读取异常!");
		e.printStackTrace();
	}
	//使用完IO流之后一定要关闭,可以使用finally类去关闭
    finally {
   	 if(is!=null) {
   		 try {
			is.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
   	 }
   	if(os!=null) {
		try {
			os.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	  }
    }
 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值