实现文件的复制

最近做了一个小练习,实现文件的复制,分为两种方法,一种是通过字符流实现复制和通过字节流实现复制


通过字符流实现文件的赋值

package com.cn.copy;

import java.io.FileReader;
import java.io.FileWriter;


public class copyByChar {
	public static void main(String[] args) {
		copyByChar("src/com/cn/copy/Copy.java","copyCopy.java");
	}
	public static  void copyByChar(String srcName,String tagetName){
		FileReader reader=null;
		FileWriter writer=null;
		try{
			reader=new FileReader(srcName);
			writer=new FileWriter(tagetName);
			char[] aa=new char[1024];
			int len=0;
			while((len=reader.read(aa))!=-1){
				writer.write(aa, 0, len);
			}
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			if(reader!=null){
				try{
					reader.close();
				}catch(Exception e){
					e.printStackTrace();
				}finally{
					if(writer!=null){
						try{
							writer.close();
						}catch(Exception e){
							e.printStackTrace();
						}
					}
				}
			}
		}
	}
}

通过字节流实现文件的赋值

package com.cn.copy;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyByByte {
	public static void main(String[] args) {
		read(new File("aa.jpg"),new File("bb.jpg"));
	}
	
	public static void read(File srcFile,File tagetFile){
		FileInputStream inStream=null;
		FileOutputStream outStream=null;
		try{
			inStream=new FileInputStream(srcFile);
			outStream=new FileOutputStream(tagetFile);
			byte[] buff=new byte[1024];
			int len=0;
			while((len=inStream.read(buff))!=-1){
				outStream.write(buff,0,len);
				System.out.println("已经输入1024字节");
			};
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				if(inStream!=null){
					inStream.close();
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				try{
					if(outStream!=null){
						outStream.close();
					}
				}catch(Exception e){
					e.printStackTrace();
				}
			}
		}
	}
}


实现文件的赋值分为以下几步:

1.获得目标资源

2.建立输入输出流

3.进行输入输出操作

4.关闭文件流


java7可以实现流的自动关闭


字符流和字节流的区别,字符流有个缓冲区,必须经过flush或者关闭流的操作才可以将数据写入到目标文件中,而字节流则没有,如果用字符流赋值图片之类的文件可能会出现字节丢失的现象,所以字符流适合复制文本文档文件,字节流适合复制图片之类的文件


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值