package InputOutput;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 将硬盘的文本文件复制一份出来
*/
public class CopyTest {
public static void main(String[] args) throws IOException,InterruptedException {
// copyTest_1();
copyTest_2();
}
/*
* 从硬盘拷贝一份文本文件到另外一个硬盘中
* 1.在D盘创建一个文本文件,用于存储存C盘储读取到的数据
* 2.定义读取流和C盘文件关联
* 3.通过不断的读写完成数据存储
* 4.关闭资源
*/
public static void copyTest_1() throws IOException, InterruptedException{
//定义一个拷贝出来的文件
FileWriter fw = new FileWriter("c:/3.txt");
//定义一个读取流
FileReader fr = new FileReader("c:/1.txt");
//读取一个字符,就写入一个字符
int ch = 0; //该变量在本案例跟起到了判断循环是否继续的作用
while((ch=fr.read())!= -1){
fw.write(ch);
}
fw.close();
fr.close();
}
/*
* 更快速的做法
* 我们钭读取到的字符存放在一个数组里面,再将数组写入到FileWriter流里面
*/
public static void copyTest_2(){
FileWriter fw = null;
FileReader fr = null;
try{
fw = new FileWriter("c:/2.java");
fr = new FileReader("c:/1.txt");
char[] arr = new char[2];
int num = 0;
while((num=fr.read(arr)) != -1){
fw.write(arr);
}
}catch(IOException io){
throw new RuntimeException("读写失败!!!");
}finally{
if(fr != null){
try{
fr.close();
}catch(IOException o){
}
}
if(fw != null){
try{
fw.close();
}catch(IOException o){
}
}
}
}
}