与字节不同的地方在于:
字符的读取需要用到char[]数组
while循环基本一致。
简单版
package IObase;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 字符流IO的基本步骤:
* 1 选择源
* 2 选择流
* 3 搬运操作
* 4 关流
*/
public class IOTest6 {
/*
* 通过读取字符的方式读取文件,仅仅适合字符文件
* FileReader、FileWriter两个关键类
* 因为读取字符,FileReader所以需要char[] 字符数组
* 写入的时候,可以写入字符数组或者字符串
*/
public static void main(String[] args) {
FileReader reader = null;
FileWriter writer = null;
try {
//根目录下的文件
reader = new FileReader("test.txt");
//输出到根目录的新文件名字
writer = new FileWriter("writer.txt");
char[] cr = new char[1024];
int temp;
while((temp = reader.read(cr)) != -1) {
writer.write(cr, 0, temp);
}
writer.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(null != writer) {
writer.close();
}
if(null != reader) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(null != writer){
writer.close();
}
if(null != reader){
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}