package cn.itcast;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 需求:用缓冲流复制文件
*数据源:
*FileOutputStreamDemo.java
*目的地:
*Copy.java
*
*/public class BufferedCopyTest {
public static void main(String[] args) {
BufferedWriter bw = null;
BufferedReader br = null;
try {
// 定义字符流对象
FileWriter fw = new FileWriter("Copy.java"); // 根据给定的文件名构造一个 FileWriter 对象。
bw = new BufferedWriter(fw); //创建一个使用默认大小输出缓冲区的缓冲字符输出流。
//读取FileOutputStreamDemo.java文件中的数据。并创建一个新的FileReader
FileReader fr = new FileReader("FileOutputStreamDemo.java");
//创建一个使用默认大小输入缓冲区的缓冲字符输入流。
br = new BufferedReader(fr);
// // 一次读取一个
// int len = 0;
// while ((len = br.read()) != -1) {
// bw.write(len);
// }
// 一次读一个数组
char[] chs = new char[1024];
int len1 = 0;
while ((len1 = br.read(chs)) != -1) { //read(char[] cbuf) 将字符读入数组。
bw.write(chs, 0, len1);
}
} catch (FileNotFoundException e) {
} catch (IOException e) {
} finally {
if (bw != null) {
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (br != null) {
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
} |
|