java文件复制-字符流

本文介绍了Java中使用字符流复制文件的方法,包括Reader和Writer的常用方法,以及字符流在文件拷贝中的适用场景。文章强调了字符流在处理纯文本时的优势,但不适合流媒体文件,因为非文本字符可能导致编码问题。同时,通过BufferedReader和BufferedWriter提高了字符流的效率。对比字节流,字符流具有缓存、操作字符和效率提升的特点。
摘要由CSDN通过智能技术生成

前记:欠下的迟早是要还的~~还债第二篇!

上一篇文章讲了使用字节流复制,这一篇主要解释字符流复制文件。最后有字节流和字符流的区别。

字符流的体系

抽象顶层父类: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个
  • 中英文混杂,每次不知道要读取多少字节

字符流的拷贝使用场景:

  • 如果在读取字符之后,需要人为阅读,或修改之类,就有必要使用字符流了
  • 如果只单纯的文件拷贝,就不需要使用<
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值