黑马程序员技术交流社区

标题: 异常04 [打印本页]

作者: _J2EE_LiXiZhen    时间: 2017-11-10 23:32
标题: 异常04
[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();
                        }
                }
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2