文章目录

一、字符流写数据

二、字符流读数据

三、字符缓冲流

四、字符缓冲流特有功能

五、 字符缓冲流复制文件

字符流=字节流+编码表

字符流:字节流操作的都是字节,希望程序中操作字符,于是JDK提供了用于实现字符操作的字符流
  • 用字节流复制文件时,文本文件中也会有中文,但是没有问题,因为最终底层操作会自动进行字节拼接成中文,如何识别中文:
    汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数

一、字符流写数据

FileReader和FileWriter

	字符流写数据:
	FileWriter osw = new FileWriter("D:\\wokspace1\\firstwork\\osw.txt");
		写入一个字符
		osw.write(97);
// 刷新流
		osw.flush();

		char [] chs = {
   'a','b','c'};
// 写入一个字符数组
		osw.write(chs);
// 希尔字符数组的一部分
		osw.write(chs,0,chs.length);
// 写入一个字符串
		osw.write("abcdef");
// 写入一个字符串的一部分
		osw.write("abcdef",1,3);
// 释放资源
		osw.close();

二、字符流读数据

	字符流读数据:
	//
	 FileReader isr = new FileReader("D:\\wokspace1\\firstwork\\osw.txt");
	int read(): 一次读一个字符数据
		int ch;
		while((ch=isr.read())!=-1) {
   
			System.out.println((char)ch);
		}
   	int read(char[] cbuf): 一次读一个字符数组数据
		char[] chs = new char [1024];
		int len=0;
		while((len=isr.read(chs))!=-1) {
   
			System.out.println(new String(chs,0,len));
		}

三、字符缓冲流

	字符缓冲流:
	BufferedReader br = new BufferedReader(new FileReader("D:\\wokspace1\\firstwork\\osw.txt"));
		
		char[] chs = new char[1024];
		int len=0;
		while((len=br.read(chs))!=-1) {
   
			System.out.println(new String(chs,0,len));
		}

四、字符缓冲流特有功能

BufferedWriter:
	newLine():写一行行分隔符(换行),行分隔符字符串由系统属性定义
	readLine():读一行文字

五、字符缓冲流复制文件

字符缓冲流来复制文件:
		BufferedReader br = new BufferedReader(new FileReader("D:\\wokspace1\\firstwork\\bos.txt"));
		
		BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\wokspace1\\firstwork\\osw.txt"));
		
		String line;
		while((line=br.readLine())!=null) {
   
			bw.write(line);
			bw.newLine();
			bw.flush();
		}
		
		bw.close();
		br.close();