复习一下上次的字节流
一、字符流
1. Reader —— FileReader 文件字符输入流——读字符数据进来
2. Writer —— FileWriter文件字符输出流——写字符数据进去
1. Reader —— FileReader(文件字符输入流)
public static void main(String[] args) {
try (
//创建一个字符输入流管道与源文件接通
Reader fr = new FileReader("E:\\developcode\\javacode\\javabase\\src\\com\\IO\\ziFu\\io_1");
){
//读取文本文件的内容
int c; //记住每次读取的字符编号
while ((c = fr.read()) != -1) {
System.out.print((char) c);
}
} catch (Exception e) {
e.printStackTrace();
}
}
对于这种方法,系统性能不太好,每次都得调用,所以用以下方法来减少调用,提高性能
public static void main(String[] args) {
try (
//创建一个字符输入流管道与源文件接通
Reader fr = new FileReader("文件路径");
) {
char[] buffer = new char[3];
int len;
while ((len = fr.read(buffer)) != -1) {
System.out.print(new String(buffer, 0, len));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
2. Writer —— FileWriter(文件字符输出流)
作用:以内存为基准,把内存中的数据以字符的形式写出到文件中去
public static void main(String[] args) {
try (
FileWriter fw = new FileWriter("E:\\developcode\\javacode\\javabase\\src\\com\\IO\\ziFu\\io_2",true)
){
fw.write(97); //写一个字符
fw.write("我爱中国!"); //写一个字符串
fw.write("\r\n"); //回车换行
fw.write("我是中国人的",0,5); //规定写多少个字符进去
fw.write("\r\n");
char[] buffer = {'你', '好', '美', '丽'};
fw.write(buffer,0,2); //写一个字符数组,可以规定去几个数字
fw.write("\r\n");
}catch (Exception e){
e.printStackTrace();
}
}
一个非常重要的知识!!!
关于流的关闭:close() or flush()
public static void main(String[] args) throws IOException {
FileWriter fw1 = new FileWriter("E:\\developcode\\javacode\\javabase\\src\\com\\IO\\ziFu\\io_3");
fw1.write(97); //写一个字符
fw1.write("我爱中国!"); //写一个字符串
fw1.write("\r\n"); //回车换行
fw1.write("我是中国人的",0,5); //规定写多少个字符进去
fw1.write("\r\n");
char[] buffer = {'你', '好', '美', '丽'};
fw1.write(buffer,0,2); //写一个字符数组,可以规定去几个数字
fw1.write("\r\n");
//必须刷新才可以创建成功,实质是先将数据拿到一个缓冲区,再从缓冲区读取,如果缓冲区满了会自动刷新
//fw1.flush();//刷新,还可以再用
//fw1.write(98);
//fw1.flush();
fw1.close();//关闭流,包含刷新流,不可以再用这个流了
}
关于字符流的知识大概就总结完了