JAVA中IO流字符流复制文本文档性能优化版
1、代码实现:
package rwStream_practise;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
public class RW_Stream {
public static void main(String[] args) {
// TODO Auto-generated method stub
Reader reader=null;
Writer writer=null;
try {
//输入流将文本文件从D盘输入到内存
reader=new FileReader(new File("D:\\蓝桥.txt"));
//输出流将文本文件从内存输出到E盘
writer=new FileWriter(new File("D:\\蓝桥3.txt"));
/*
* 接下来需要一个字符一个字符的去读,Java中的处理机制会将文件的 的每一个字符转化成字节,再转化成一个int型的数字。
*/
char[] c=new char[100];
while(true) {
int i= reader.read(c);
//当这个int型数字变为-1的时候,表明读取结束
if(i==-1) {
break;
}
System.out.println(new String(c));
//读完以后就开始往里面写了
writer.write(c,0,i);
}
} catch (FileNotFoundException e) {
System.out.println("你输入的文件路径是错误的!");
e.printStackTrace();
} catch (IOException e) {
System.out.println("读取异常!");
e.printStackTrace();
}
//使用完IO流之后一定要关闭,可以使用finally类去关闭
finally {
if(reader!=null) {
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(writer!=null) {
try {
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}