需求:把模块目录下的ConversionStreamDemo.java复制到模块目录下的Copy.java
分析:
1、转换流的名字比较长,而我们常见的操作都是按照本地默认编码实现的,所以为了简化书写,转换流提供了对应的子类
2、FileReader:用于读取字符文件的便捷类
FileReader(String fileName)
3、FileWriter:用于写入字符文件的便捷类
FileWriter(String fileName)
4、数据源和目的地的分析
数据源:D:\Document\Java\myCharStream\ConversionStreamDemo.java---读数据---Reader---InputStreamReader---FileReader
目的地:D:\Document\Java\myCharStream\Copy.java---写数据---Writer---OutputStreamWriter---FileWriter
思路:
1、根据数据源创建字符输入流对象
2、根据目的地创建字符输出流对象
3、读写数据,复制文件
4、释放资源
package FileInputStreamTest;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
需求:把模块目录下的ConversionStreamDemo.java复制到模块目录下的Copy.java
分析:
1、转换流的名字比较长,而我们常见的操作都是按照本地默认编码实现的,所以为了简化书写,转换流提供了对应的子类
2、FileReader:用于读取字符文件的便捷类
FileReader(String fileName)
3、FileWriter:用于写入字符文件的便捷类
FileWriter(String fileName)
4、数据源和目的地的分析
数据源:D:\Document\Java\myCharStream\ConversionStreamDemo.java---读数据---Reader---InputStreamReader---FileReader
目的地:D:\Document\Java\myCharStream\Copy.java---写数据---Writer---OutputStreamWriter---FileWriter
思路:
1、根据数据源创建字符输入流对象
2、根据目的地创建字符输出流对象
3、读写数据,复制文件
4、释放资源
*/
public class CopyJavaDemo02 {
public static void main(String[] args) throws IOException {
//1、根据数据源创建字符输入流对象
FileReader fr = new FileReader("D:\\Document\\Java\\myCharStream\\ConversionStreamDemo.java");
//2、根据目的地创建字符输出流对象
FileWriter fw = new FileWriter("D:\\Document\\Java\\myCharStream\\Copy.java");
//3、读写数据,复制文件
//一次读写一个字节
// 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);
}
//4、释放资源
fw.close();
fr.close();
}
}