Java基础知识强化之IO流笔记36:InputStreamReader/OutputStreamWriter 复制文本文件案例

时间:2023-03-08 21:49:51
Java基础知识强化之IO流笔记36:InputStreamReader/OutputStreamWriter 复制文本文件案例

1. 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中.
 数据源:
   a.txt -- 读取数据 -- 字符转换流 -- InputStreamReader
 目的地:
   b.txt -- 写出数据 -- 字符转换流 -- OutputStreamWriter

InputStreamReader/OutputStreamWriter不仅是转换流(将字节流转换为字符流),也是字符流Reader/Writer的具体实现子类。

2.代码示例:

 package cn.itcast_04;

 import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; /*
* 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中
*
* 数据源:
* a.txt -- 读取数据 -- 字符转换流 -- InputStreamReader
* 目的地:
* b.txt -- 写出数据 -- 字符转换流 -- OutputStreamWriter
*/
public class CopyFileDemo {
public static void main(String[] args) throws IOException {
// 封装数据源
InputStreamReader isr = new InputStreamReader(new FileInputStream(
"a.txt"));
// 封装目的地
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(
"b.txt")); // 读写数据
// 方式1
// int ch = 0;
// while ((ch = isr.read()) != -1) {
// osw.write(ch);
// } // 方式2
char[] chs = new char[1024];
int len = 0;
while ((len = isr.read(chs)) != -1) {
osw.write(chs, 0, len);
// osw.flush();
} // 释放资源
osw.close();
isr.close();
}
}