黑马程序员 用io流复制一个文件

---------------------- android培训java培训、期待与您交流! --------------------

//要求:把指定文件夹下的11111.txt复制一份,内容贴到新建的22.txt文件中
import java.io.*;
class CopyTest 
{
	public static void main(String[] a)throws IOException
	{
		copy1();//方式一,一个个字符复制
		copy2();//方式二,全部字符放到字符数组里复制过去
	}
	public static void copy1()throws IOException
	{
		FileReader r=new FileReader("D:\\javafile\\day18\\src\\11111.txt");//源文件
		FileWriter w=new FileWriter("D:\\javafile\\day18\\src\\22.txt");//新建文件
		int c=0;//c是用来记录读取的字符的编码值
		while((c=r.read())!=-1)//编码值不等于-1就表示有数据可读
			w.write(c);//把缓冲区的字符写在新文件中
		r.close();//复制完毕必须关闭这两个资源
		w.close();
	}
	public static void copy2()
	{
		FileReader r=null;	//先定义好一个读的流和一个写的流		
		FileWriter w=null;
		try
		{
			int length=0;//一趟读入几个字符
			char[] c=new char[1024];//c装的是读取的字符数组
			r=new FileReader("D:\\javafile\\day18\\src\\11111.txt");//读的流关联到源文件
			w=new FileWriter("D:\\javafile\\day18\\src\\22.txt");//写的流关联到新建文件
			while((length=r.read(c))!=-1)//读入的数组里字符个数不为-1就表示读到东西了
				w.write(c,0,length);//把缓冲区的数组写入目标文件,从位置0开始写,所写长度是读到的字符数
			r.close();//复制工作结束,关闭两个资源
			w.close();
		}
		catch(IOException e)//如果前面发生异常,比如源文件不存在
		{
			throw new RuntimeException("流异常");//抛运行时异常
		}
		finally  //不论有无异常都要做的
		{
			if(r!=null)//如果读取源文件的流有指向,就要关闭此流
			try
			{
				r.close();
			}
			catch(IOException e)
			{
				throw new RuntimeException("流异常");
			}
			if(w!=null)//如果写入目标文件的流有指向,就要关闭此流
				try
			{
					w.close();
			}
			catch(IOException e)
			{
				throw new RuntimeException("流异常");
			}
		}
	}
}

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值