文章目录
字符流复制文件
需求:将模块目录下的“test.txt”复制到模块目录下“copy.txt”
思路:
- 根据数据源创建字符输入流对象
- 根据目的地创建字符输出流对象
- 读写数据,复制文件
- 释放资源
public static void main(String[] args) throws IOException {
//根据数据源创建字符输入流对象
InputStreamReader isr=new InputStreamReader(new FileInputStream("test.txt"));
//根据目的地创建字符输出对象
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("copy.txt"));
//读写数据,复制文件
//一次读取一个字符数据
//int ch;
//while ((ch=isr.read())!=-1){
// osw.write(ch);
//}
//一次读写一个字符数组数据
char[] chs=new char[1024];
int len;
while ((len = isr.read(chs)) != -1) {
osw.write(chs,0,len);
}
//释放资源
osw.close();
isr.close();
}
改进:
为了简化书写,用InputStreamReader的子类FileReader,OutputStreamWriter的子类FileWriter
//根据数据源创建字符流输入对象
FileReader fr=new FileReader("test.txt");
//根据目的地创建字符流输出对象
FileWriter fw=new FileWriter("copy.txt");
//读写数据,复制文件
//一次读取一个字符数据
//int ch;
//while ((ch=fr.read())!=-1){
// fw.write(ch);
//}
//一次读写一个字符数组数据
char[]chs=new char[1024];
int len;
while ((len=fr.read(chs))!=-1){
fw.write(chs,0,len);
}
//释放资源
fw.close();
fr.close();