A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© _J2EE_LiXiZhen 中级黑马   /  2017-11-10 23:32  /  887 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[Java] 纯文本查看 复制代码
package com.itheima.demo04;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/*请使用代码实现
	写一个方法用于复制文本文件;
	要求:使用try...catch...finally对异常进行处理*/

/*2.定义测试类Test13
a)写一个复制文件的静态方法:copyFile(String src,String dest) 
i.这里的src为源文件路径,dest为目标文件路径
ii.定义BufferedReader br变量,初始值为null
iii.定义BufferedWriter bw 变量,初始值为null
iv.写try...catch...finally代码块
v.在try代码块中
1.创建BufferedReader的对象,绑定源文件,并把对象赋值给br
2.创建BufferedWriter的对象,绑定目标文件,并把对象赋值给bw
3.定义一个字符数组 chs,长度为1024,用于临时存储读取到的数据
4.定义整型变量len,用于记录读取到的有效字节个数
5.使用while循环,读一个字符数组,写一个字符数组,并刷新流
vi.在catch代码块中,打印异常信息
vii.在finally代码块
1.写一个try...catch代码块
2.在try代码块中: 如果bw不为null就关闭bw
3.在catch代码块中打印异常信息
4.在写一个try...catch代码块
5.在try代码块中,如果br不为null就关闭br
6.在catch代码中打印异常信息
b)提供main方法,在main方法中
i.在main方法,调用刚刚写copyFile方法,传入源文件路径和目标文件路径*/

public class Test {
	public static void main(String[] args) {
		// 在main方法,调用刚刚写copyFile方法,传入源文件路径和目标文件路径
		copyFile("content", "a");
	}

	// 写一个复制文件的静态方法:copyFile(String src,String dest)
	public static void copyFile(String src, String dest) {
		// 定义BufferedReader br变量,初始值为null
		BufferedReader br = null;
		// 定义BufferedWriter bw 变量,初始值为null
		BufferedWriter bw = null;
		try {
			// 创建BufferedReader的对象,绑定源文件,并把对象赋值给br
			br = new BufferedReader(new FileReader(src + ".txt"));
			// 创建BufferedWriter的对象,绑定目标文件,并把对象赋值给bw
			bw = new BufferedWriter(new FileWriter(dest + ".txt"));
			// 定义一个字符数组 chs,长度为1024,用于临时存储读取到的数据
			char[] chs = new char[1024];
			// 定义整型变量len,用于记录读取到的有效字节个数
			int len;
			// 使用while循环,读一个字符数组,写一个字符数组,并刷新流
			while ((len = br.read(chs)) != -1) {

			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (bw != null)
					bw.close();
			} catch (IOException e) {
				e.printStackTrace();
			}

			try {
				if (br != null)
					br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马