前记:欠下的迟早是要还的~~还债第二篇!
上一篇文章讲了使用字节流复制,这一篇主要解释字符流复制文件。最后有字节流和字符流的区别。
字符流的体系
抽象顶层父类:Reader(读取)和Writer(写入)
字符流具体子类:FileReader和FileWriter
Reader的常用方法
- close
- read()
- read(char[] arr):一次读取一组字符放到arr中,返回值表示放到数组中的字符个数
Writer的常用方法
- close
- flush
- 字符流拷贝效率提升write(int c):写出一个字符
- write(String str): 写出一个字符串
- write(char[] arr):
- write(char[] arr,int offset,int len):
都是抽象类,不能实例化,需要使用子类对象来调用方法
字节流处理字符问题
- 需要先把字符变为字节数组,才能写到目标文件中
字节读取字符
- 纯英文,每次读取一个字节
- 纯中文,每次读取两个字节(GBK) UTF-8一次读取3个
- 中英文混杂,每次不知道要读取多少字节
字符流的拷贝使用场景:
- 如果在读取字符之后,需要人为阅读,或修改之类,就有必要使用字符流了
- 如果只单纯的文件拷贝,就不需要使用<