- 一、需求
- 二、思路
- 三、使用InputStreamReader、OutputStreamWriter实现
- 四、使用FileWriter、FileReader实现
- 五、使用字符缓冲流实现
- 六、使用字符缓冲流的特有功能实现
把模块目录下的“abc.java”复制到模块目录下的“copy.java”
二、思路- 根据数据源创建字符输入流对象
- 根据目的地创建字符输出流对象
- 读写数据,复制文件
- 释放资源
import java.io.*;
public class Demo1 {
public static void main(String[] args) throws IOException {
//1. 根据数据源创建字符输入流对象
InputStreamReader isr = new InputStreamReader(new FileInputStream("ZiFuLiu\abc.java"));
//2. 根据目的地创建字符输出流对象
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("ZiFuLiu\copy.java"));
//3. 读写数据,复制文件
char[] chs = new char[1024];
int len;
while ((len = isr.read(chs)) != -1) {
osw.write(chs, 0, len);
}
//4. 释放资源
isr.close();
osw.close();
}
}
四、使用FileWriter、FileReader实现
import java.io.*;
public class Demo2 {
public static void main(String[] args) throws IOException {
//1. 根据数据源创建字符输入流对象
FileReader fr = new FileReader("ZiFuLiu\abc.java");
//2. 根据目的地创建字符输出流对象
FileWriter fw = new FileWriter("ZiFuLiu\copy.java");
//3. 读写数据,复制文件
char[] chs = new char[1024];
int len;
while ((len = fr.read(chs)) != -1) {
fw.write(chs, 0, len);
}
//4. 释放资源
fr.close();
fw.close();
}
}
五、使用字符缓冲流实现
import java.io.*;
public class Demo3 {
public static void main(String[] args) throws IOException {
//1. 根据数据源创建字符输入流对象
BufferedReader br = new BufferedReader(new FileReader("ZiFuLiu\abc.java"));
//2. 根据目的地创建字符输出流对象
BufferedWriter bw = new BufferedWriter(new FileWriter("ZiFuLiu\copy.java"));
//3. 读写数据,复制文件
char[] chs = new char[1024];
int len;
while ((len = br.read(chs)) != -1) {
bw.write(chs, 0, len);
}
//4. 释放资源
br.close();
bw.close();
}
}
六、使用字符缓冲流的特有功能实现
import java.io.*;
public class Demo4 {
public static void main(String[] args) throws IOException {
//1. 根据数据源创建字符输入流对象
BufferedReader br = new BufferedReader(new FileReader("ZiFuLiu\abc.java"));
//2. 根据目的地创建字符输出流对象
BufferedWriter bw = new BufferedWriter(new FileWriter("ZiFuLiu\copy.java"));
//3. 读写数据,复制文件
String line;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
bw.flush();
}
//4. 释放资源
br.close();
bw.close();
}
}



