Java I/O 字节流 文件复制

package com.io;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamDemo {
	/**
	 * InputStream 往里读
	 * OutputStream 往外写
	 * 复制图片必须用到字节流
	 */
	public static void main(String[] args) {
		FileInputStream fi = null;
		FileOutputStream fo =null;
		try {
			fi = new FileInputStream("d:/a.jpg");
			fo = new FileOutputStream("d:/b.jpg");
			//定义用于缓冲的字节数组,大小一般为1024的整数倍
			byte[] buf = new byte[1024];
			//len用于存放读取的长度
			int len = 0;
			while((len=fi.read(buf))!=-1){
				//把buf数组写入文件中,长度从0到len
				fo.write(buf,0,len);
			}
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally{
			if(fi!=null)
				try {
					fi.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			if(fo!=null){
				try {
					fo.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}


package com.io;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class BufferedStreamDemo {

	/**
	 * 拷贝Mp3
	 */
	public static void main(String[] args) {
		//创建输入流(读取)对象
		BufferedInputStream bi = null;
		//创建输出流(写入)对象
		BufferedOutputStream bo = null;
		try {
			//将字节流FileInputStream对象放到BifferedInputStream对象中(缓冲作用)
			bi = new BufferedInputStream(new FileInputStream("d:/Kalimba.mp3"));
			//将字节流FileOutputStream对象放到BufferedOutputStream对象中(缓冲作用)
			bo = new BufferedOutputStream(new FileOutputStream("d:/Kalimbacopy.mp3"));
			int len = 0;
			//判断是否读到最后
			while((len = bi.read())!=-1){
				//写入缓冲流
				bo.write(len);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			//对于流关闭必须分开判断分开写
			if(bi!=null)
				try {
					bi.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			if(bo!=null)
				try {
					bo.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
		}
	}
}

  

posted @ 2013-09-08 22:08  微风夜明  阅读(222)  评论(0编辑  收藏  举报