JAVA基础 IO流二 字符流
字符流只能用于纯文本的。
Reader
操作单元:字符流 流向:输入流 功能:节点流
字符流: 只能操作与 纯文本文件
Reader 用于读取字符流的抽象类。
FileReader 使用默认缓冲区大小从字符文件中读取文本
创建流
Reader rd = new FileReader(“D:/haha.txt”);
读入
1>read() 一个字符 System.out.println( (char)(rd.read()));
2>read(char[]) 字符串组单位读取
//卡车
char[] car = new char[1024];
int len = -1; //读入到数组中数据的个数
while((len = rd.read(car))!=-1){
System.out.println(new String(car,0,len));
}
关闭
rd.close();
Writer
Writer 用于写入字符流的抽象类。
FileWriter 使用默认缓冲区大小将文本写入字符文件。
创建流
Writer rd = new FileWriter(new File(“D://AAA.txt”),true); //追加
准备数据
String str = “好好学习,天天向上”;
写出
/*
void write(char[] cbuf) 写一个字符数组。
abstract void write(char[] cbuf, int off, int len) 写一个字符数组的一部分。
void write(int c) 写一个字符。
void write(String str) 写一个字符串。
void write(String str, int off, int len) 写一个字符串的一部分。
*/
rd.write(str);
刷出
rd.flush();
关闭
rd.close();
综合 copy
创建流
准备卡车(字符数组)
读入,写出
刷出
关闭
//1.创建流
Reader rd = null;
Writer wt = null;
try {
rd = new FileReader("D:/haha.txt");
wt = new FileWriter("D:/BBB.txt",true);
//2.准备卡车
char[] car = new char[1024];
int len = -1;
//3.读入-->写出
while((len=rd.read(car))!=-1){
wt.write(car,0,len);
}
//4.刷出
wt.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//5.关闭
try {
if(wt!=null){
wt.close();
}
if(rd!=null){
rd.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}