字符流方式读写
例如把 a.txt文件内容写到b.txt文件中
/*
- 由于我们常见的操作都是使用本地默认编码,所以,不用指定编码。
- 而转换流的名称有点长,所以,Java就提供了其子类供我们使用。
- OutputStreamWriter = FileOutputStream + 编码表(GBK)
- FileWriter = FileOutputStream + 编码表(GBK)
- InputStreamReader = FileInputStream + 编码表(GBK)
- FileReader = FileInputStream + 编码表(GBK)
/*
/*
- 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中
- 数据源:
a.txt -- 读取数据 -- 字符转换流 -- InputStreamReader -- FileReader -- BufferedReader
- 目的地:
b.txt -- 写出数据 -- 字符转换流 -- OutputStreamWriter -- FileWriter -- BufferedWriter
*/
一 .基本字符流
a.txt------------(FileReader)--------->java程序------------(FileWriter)----------------->b.txt
1.一次一个字符
int ch = 0;
while ((ch = fr.read()) != -1) {
fw.write(ch);
}
2.一次读取一个数组
int len=0;
char[] ch=new char[1024];
while ((len = fr.read(chs)) != -1) {
fw.write(chs, 0, len);
fw.flush();
}
二.字符缓冲流
a.txt------------(BufferedReader)--------->java程序------------(BufferedWriter)------->b.txt
3.一次读取一个字符(BufferedReader–BufferedWriter)
int ch = 0;
while ((ch = br.read()) != -1) {
bw.write(ch);
}
4.一次读取一个数组
char[] chs = new char[1024];
int len = 0;
while ((len = br.read(chs)) != -1) {
bw.write(new String(chs,0,len));
}
5.一次读取一行
String line = null;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();//换行
bw.flush();//刷新
}